diff options
author | Robert Xu <robxu9@gmail.com> | 2011-11-12 18:13:39 -0500 |
---|---|---|
committer | Robert Xu <robxu9@gmail.com> | 2011-11-12 18:13:39 -0500 |
commit | cd1f97695be1245ab19058d4fbc34e5697cc5383 (patch) | |
tree | b265d96856632dc78e566d337f7eff254b6695f7 /opensuse/core/qt3/0048-qclipboard_hack_80072.patch | |
parent | 21fcfa3348213aa87f0e3aef62ca4720c6d31cb7 (diff) | |
download | tde-packaging-cd1f97695be1245ab19058d4fbc34e5697cc5383.tar.gz tde-packaging-cd1f97695be1245ab19058d4fbc34e5697cc5383.zip |
fix up tdebase and add qt3
Diffstat (limited to 'opensuse/core/qt3/0048-qclipboard_hack_80072.patch')
-rw-r--r-- | opensuse/core/qt3/0048-qclipboard_hack_80072.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/opensuse/core/qt3/0048-qclipboard_hack_80072.patch b/opensuse/core/qt3/0048-qclipboard_hack_80072.patch new file mode 100644 index 000000000..2f508019b --- /dev/null +++ b/opensuse/core/qt3/0048-qclipboard_hack_80072.patch @@ -0,0 +1,51 @@ +qt-bugs@ issue : none, probably even won't be +bugs.kde.org number : 80072 +applied: no +author: Lubos Lunak <l.lunak@kde.org> + +A crude hack for KDE #80072. No good idea how to fix it properly yet :(. + +================================================================================ +Index: src/kernel/qclipboard_x11.cpp +=================================================================== +--- src/kernel/qclipboard_x11.cpp.orig ++++ src/kernel/qclipboard_x11.cpp +@@ -112,6 +112,7 @@ static int pending_timer_id = 0; + static bool pending_clipboard_changed = FALSE; + static bool pending_selection_changed = FALSE; + ++Q_EXPORT bool qt_qclipboard_bailout_hack = false; + + // event capture mechanism for qt_xclb_wait_for_event + static bool waiting_for_data = FALSE; +@@ -464,6 +465,15 @@ static Bool checkForClipboardEvents(Disp + || e->xselectionclear.selection == qt_xa_clipboard))); + } + ++static bool selection_request_pending = false; ++ ++static Bool check_selection_request_pending( Display*, XEvent* e, XPointer ) ++ { ++ if( e->type == SelectionRequest && e->xselectionrequest.owner == owner->winId()) ++ selection_request_pending = true; ++ return False; ++ } ++ + bool qt_xclb_wait_for_event( Display *dpy, Window win, int type, XEvent *event, + int timeout ) + { +@@ -515,6 +525,14 @@ bool qt_xclb_wait_for_event( Display *dp + do { + if ( XCheckTypedWindowEvent(dpy,win,type,event) ) + return TRUE; ++ if( qt_qclipboard_bailout_hack ) { ++ XEvent dummy; ++ selection_request_pending = false; ++ if ( owner != NULL ) ++ XCheckIfEvent(dpy,&dummy,check_selection_request_pending,NULL); ++ if( selection_request_pending ) ++ return TRUE; ++ } + + // process other clipboard events, since someone is probably requesting data from us + XEvent e; |