diff options
author | Francois Andriot <francois.andriot@free.fr> | 2012-02-13 22:56:37 +0100 |
---|---|---|
committer | Francois Andriot <francois.andriot@free.fr> | 2012-02-13 22:56:37 +0100 |
commit | 14dfc7ec02c0f331342d8becac217b781b5feadf (patch) | |
tree | 11e36a7fbc9408fcd91d045f58892300d37a8b47 /redhat/tqt3/0084-compositing-properties.patch | |
parent | e52e723d608adb3227f17cc07ca39e0a84002f89 (diff) | |
download | tde-packaging-14dfc7ec02c0f331342d8becac217b781b5feadf.tar.gz tde-packaging-14dfc7ec02c0f331342d8becac217b781b5feadf.zip |
[RHEL/Fedora] add TQT3 for future R14
Diffstat (limited to 'redhat/tqt3/0084-compositing-properties.patch')
-rw-r--r-- | redhat/tqt3/0084-compositing-properties.patch | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/redhat/tqt3/0084-compositing-properties.patch b/redhat/tqt3/0084-compositing-properties.patch new file mode 100644 index 000000000..368b6c267 --- /dev/null +++ b/redhat/tqt3/0084-compositing-properties.patch @@ -0,0 +1,80 @@ +qt-bugs@ issue : none +bugs.kde.org number : none +applied: no +author: Lubos Lunak <l.lunak@kde.org> + +This patch makes override-redirect windows (popup menu, dropdown menu, +tooltip, combobox, etc.) also have more window properties like WM_CLASS, +so they can be used when compositing. + +--- src/kernel/qwidget_x11.cpp.sav 2007-06-25 10:36:42.000000000 +0200 ++++ src/kernel/qwidget_x11.cpp 2007-10-02 15:30:13.000000000 +0200 +@@ -557,7 +557,10 @@ void QWidget::create( WId window, bool i + wsa.save_under = True; + XChangeWindowAttributes( dpy, id, CWOverrideRedirect | CWSaveUnder, + &wsa ); +- x11SetWindowType(); ++ XClassHint class_hint; ++ class_hint.res_name = (char *) qAppName(); // application name ++ class_hint.res_class = (char *) qAppClass(); // application class ++ XSetClassHint( dpy, id, &class_hint ); + } else if ( topLevel && !desktop ) { // top-level widget + QWidget *p = parentWidget(); // real parent + if (p) +@@ -620,8 +623,6 @@ void QWidget::create( WId window, bool i + else + XDeleteProperty(dpy, id, qt_xa_motif_wm_hints); + +- x11SetWindowType(); +- + // set _NET_WM_WINDOW_STATE + if (curr_winstate > 0) + XChangeProperty(dpy, id, qt_net_wm_state, XA_ATOM, 32, PropModeReplace, +@@ -629,11 +630,6 @@ void QWidget::create( WId window, bool i + else + XDeleteProperty(dpy, id, qt_net_wm_state); + +- // set _NET_WM_PID +- long curr_pid = getpid(); +- XChangeProperty(dpy, id, qt_net_wm_pid, XA_CARDINAL, 32, PropModeReplace, +- (unsigned char *) &curr_pid, 1); +- + #ifndef QT_NO_XSYNC + // set _NET_WM_SYNC_COUNTER + createSyncCounter(); +@@ -645,19 +641,31 @@ void QWidget::create( WId window, bool i + // when we create a toplevel widget, the frame strut should be dirty + fstrut_dirty = 1; + ++ } else { ++ // non-toplevel widgets don't have a frame, so no need to ++ // update the strut ++ fstrut_dirty = 0; ++ } ++ ++ if (initializeWindow && (popup || (topLevel && !desktop))) { // properties set on all toplevel windows ++ x11SetWindowType(); ++ ++ // set _NET_WM_PID ++ long curr_pid = getpid(); ++ XChangeProperty(dpy, id, qt_net_wm_pid, XA_CARDINAL, 32, PropModeReplace, ++ (unsigned char *) &curr_pid, 1); ++ + // declare the widget's object name as window role + XChangeProperty( dpy, id, + qt_window_role, XA_STRING, 8, PropModeReplace, + (unsigned char *)name(), qstrlen( name() ) ); + + // set client leader property ++ if ( !qt_x11_wm_client_leader ) ++ qt_x11_create_wm_client_leader(); + XChangeProperty( dpy, id, qt_wm_client_leader, + XA_WINDOW, 32, PropModeReplace, + (unsigned char *)&qt_x11_wm_client_leader, 1 ); +- } else { +- // non-toplevel widgets don't have a frame, so no need to +- // update the strut +- fstrut_dirty = 0; + } + + if ( initializeWindow ) { |