summaryrefslogtreecommitdiffstats
path: root/redhat/kdebase/kdebase-3.5.13-fix_tooltip_lock.patch
diff options
context:
space:
mode:
Diffstat (limited to 'redhat/kdebase/kdebase-3.5.13-fix_tooltip_lock.patch')
-rw-r--r--redhat/kdebase/kdebase-3.5.13-fix_tooltip_lock.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/redhat/kdebase/kdebase-3.5.13-fix_tooltip_lock.patch b/redhat/kdebase/kdebase-3.5.13-fix_tooltip_lock.patch
new file mode 100644
index 000000000..6fc4d2e5e
--- /dev/null
+++ b/redhat/kdebase/kdebase-3.5.13-fix_tooltip_lock.patch
@@ -0,0 +1,29 @@
+--- kdebase/kdesktop/lock/lockprocess.cc.tooltips 2012-08-10 15:16:14.047229047 +0200
++++ kdebase/kdesktop/lock/lockprocess.cc 2012-08-10 15:41:08.433645385 +0200
+@@ -960,6 +960,26 @@
+
+ setGeometry(0, 0, mRootWidth, mRootHeight);
+
++ // Hack to close all tooltips on screen
++ Window rootWindow = RootWindow(x11Display(), x11Screen());
++ Window parent;
++ Window* children = NULL;
++ Window* child = NULL;
++ unsigned int noOfChildren = 0;
++ XWindowAttributes childAttr;
++ Window childTransient;
++
++ if(XQueryTree(x11Display(), rootWindow, &rootWindow, &parent, &children, &noOfChildren) && noOfChildren>0 ) {
++ for (unsigned int i=0; i<noOfChildren; i++) {
++ if (XGetWindowAttributes(x11Display(), children[i], &childAttr) && XGetTransientForHint(x11Display(), children[i], &childTransient)) {
++ if((childAttr.map_state == IsViewable) && (childAttr.override_redirect) && (childTransient)) {
++ XUnmapWindow(x11Display(), children[i]);
++ }
++ }
++ }
++ }
++
++
+ kdDebug(1204) << "Saver window Id: " << winId() << endl;
+ }
+