Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
KDE:KDE3
qt3
0048-qclipboard_hack_80072.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0048-qclipboard_hack_80072.patch of Package qt3
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;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor