1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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;
}
|