summaryrefslogtreecommitdiffstats
path: root/gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-20_19_02_00-Add-0084-compositing-patch-from-RedHat-909c3cb.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-20_19_02_00-Add-0084-compositing-patch-from-RedHat-909c3cb.patch')
-rw-r--r--gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-20_19_02_00-Add-0084-compositing-patch-from-RedHat-909c3cb.patch73
1 files changed, 73 insertions, 0 deletions
diff --git a/gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-20_19_02_00-Add-0084-compositing-patch-from-RedHat-909c3cb.patch b/gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-20_19_02_00-Add-0084-compositing-patch-from-RedHat-909c3cb.patch
new file mode 100644
index 000000000..b9be973ee
--- /dev/null
+++ b/gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-20_19_02_00-Add-0084-compositing-patch-from-RedHat-909c3cb.patch
@@ -0,0 +1,73 @@
+diff --git a/src/kernel/qwidget_x11.cpp b/src/kernel/qwidget_x11.cpp
+index 02fdebf..a095025 100644
+--- a/src/kernel/qwidget_x11.cpp
++++ b/src/kernel/qwidget_x11.cpp
+@@ -558,7 +558,10 @@ void QWidget::create( WId window, bool initializeWindow, bool destroyOldWindow)
+ 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)
+@@ -621,8 +624,6 @@ void QWidget::create( WId window, bool initializeWindow, bool destroyOldWindow)
+ 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,
+@@ -630,11 +631,6 @@ void QWidget::create( WId window, bool initializeWindow, bool destroyOldWindow)
+ 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();
+@@ -646,19 +642,31 @@ void QWidget::create( WId window, bool initializeWindow, bool destroyOldWindow)
+ // 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 ) {