summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-libs/qt/files/qt-3.3.1-qclipboard-fix.patch')
-rw-r--r--x11-libs/qt/files/qt-3.3.1-qclipboard-fix.patch94
1 files changed, 0 insertions, 94 deletions
diff --git a/x11-libs/qt/files/qt-3.3.1-qclipboard-fix.patch b/x11-libs/qt/files/qt-3.3.1-qclipboard-fix.patch
deleted file mode 100644
index fdfa086ff13f..000000000000
--- a/x11-libs/qt/files/qt-3.3.1-qclipboard-fix.patch
+++ /dev/null
@@ -1,94 +0,0 @@
---- src/kernel/qclipboard_x11.cpp.sav 2004-01-06 19:24:40.000000000 +0100
-+++ src/kernel/qclipboard_x11.cpp 2004-01-22 19:48:32.000000000 +0100
-@@ -112,10 +112,6 @@ static bool pending_selection_changed =
-
- // event capture mechanism for qt_xclb_wait_for_event
- static bool waiting_for_data = FALSE;
--static bool has_captured_event = FALSE;
--static Window capture_event_win = None;
--static int capture_event_type = -1;
--static XEvent captured_event;
-
- class QClipboardWatcher; // forward decl
- static QClipboardWatcher *selection_watcher = 0;
-@@ -432,69 +428,36 @@ bool QClipboard::selectionModeEnabled()
- { return inSelectionMode_obsolete; }
-
-
--// event filter function... captures interesting events while
--// qt_xclb_wait_for_event is running the event loop
--static int qt_xclb_event_filter(XEvent *event)
--{
-- if (event->xany.type == capture_event_type &&
-- event->xany.window == capture_event_win) {
-- VDEBUG( "QClipboard: event_filter(): caught event type %d", event->type );
-- has_captured_event = TRUE;
-- captured_event = *event;
-- return 1;
-- }
--
-- return 0;
--}
--
- bool qt_xclb_wait_for_event( Display *dpy, Window win, int type, XEvent *event,
- int timeout )
- {
-- if ( waiting_for_data )
-- qFatal( "QClipboard: internal error, qt_xclb_wait_for_event recursed" );
--
-- waiting_for_data = TRUE;
--
- QTime started = QTime::currentTime();
- QTime now = started;
--
-- has_captured_event = FALSE;
-- capture_event_win = win;
-- capture_event_type = type;
--
-- QX11EventFilter old_event_filter = qt_set_x11_event_filter(qt_xclb_event_filter);
-+ bool flushed = FALSE;
-
- do {
-- if ( XCheckTypedWindowEvent(dpy,win,type,event) ) {
-- waiting_for_data = FALSE;
-- qt_set_x11_event_filter(old_event_filter);
-+ if ( XCheckTypedWindowEvent(dpy,win,type,event) )
- return TRUE;
-- }
-
- now = QTime::currentTime();
- if ( started > now ) // crossed midnight
- started = now;
-
-- // 0x08 == ExcludeTimers for X11 only
-- qApp->eventLoop()->processEvents( QEventLoop::ExcludeUserInput |
-- QEventLoop::ExcludeSocketNotifiers |
-- QEventLoop::WaitForMore | 0x08 );
--
-- if ( has_captured_event ) {
-- waiting_for_data = FALSE;
-- *event = captured_event;
-- qt_set_x11_event_filter(old_event_filter);
-- return TRUE;
-+ if(!flushed) {
-+ XFlush( dpy );
-+ flushed = TRUE;
- }
-- } while ( started.msecsTo(now) < timeout );
-
-- waiting_for_data = FALSE;
-- qt_set_x11_event_filter(old_event_filter);
-+ // sleep 50ms, so we don't use up CPU cycles all the time.
-+ struct timeval usleep_tv;
-+ usleep_tv.tv_sec = 0;
-+ usleep_tv.tv_usec = 50000;
-+ select(0, 0, 0, 0, &usleep_tv);
-+ } while ( started.msecsTo(now) < timeout );
-
- return FALSE;
- }
-
--
- static inline int maxSelectionIncr( Display *dpy )
- { return XMaxRequestSize(dpy) > 65536 ? 65536*4 : XMaxRequestSize(dpy)*4 - 100; }
-