summaryrefslogtreecommitdiffstats
path: root/redhat/kdebase/kdebase-bp128-1f33dc8f.diff
blob: e552a069b562accf3876cfe3375e685a321ceff8 (plain)
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
commit 1f33dc8fd2fc14c2abb74be4e27ef08fdda784d6
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
Date:   1348374670 -0500

    Attempt to minimize the time in which new notifications are displayed before being hidden

diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
index 7191346..db92c00 100644
--- a/kdesktop/lock/lockprocess.cc
+++ b/kdesktop/lock/lockprocess.cc
@@ -980,6 +980,7 @@ void LockProcess::createSaverWindow()
                             trinity_desktop_lock_hidden_window_list.append(children[i]);
                         }
                         XLowerWindow(x11Display(), children[i]);
+                        XFlush(x11Display());
                     }
                 }
             }
diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc
index a95747e..7235776 100644
--- a/kdesktop/lock/main.cc
+++ b/kdesktop/lock/main.cc
@@ -90,6 +90,7 @@ bool MyApp::x11EventFilter( XEvent *ev )
                     trinity_desktop_lock_hidden_window_list.append(map_event.window);
                 }
                 XLowerWindow(map_event.display, map_event.window);
+                XFlush(map_event.display);
             }
         }
     }
@@ -106,10 +107,27 @@ bool MyApp::x11EventFilter( XEvent *ev )
                         trinity_desktop_lock_hidden_window_list.append(visibility_event.window);
                     }
                     XLowerWindow(visibility_event.display, visibility_event.window);
+                    XFlush(visibility_event.display);
                 }
             }
         }
     }
+    else if (ev->type == CreateNotify) {
+        // HACK
+        // Close all tooltips and notification windows
+        XCreateWindowEvent create_event = ev->xcreatewindow;
+        XWindowAttributes childAttr;
+        Window childTransient;
+        if (XGetWindowAttributes(create_event.display, create_event.window, &childAttr) && XGetTransientForHint(create_event.display, create_event.window, &childTransient)) {
+            if ((childAttr.override_redirect) && (childTransient)) {
+                if (!trinity_desktop_lock_hidden_window_list.contains(create_event.window)) {
+                    trinity_desktop_lock_hidden_window_list.append(create_event.window);
+                }
+                XLowerWindow(create_event.display, create_event.window);
+                XFlush(create_event.display);
+            }
+        }
+    }
     else if (ev->type == DestroyNotify) {
         XDestroyWindowEvent destroy_event = ev->xdestroywindow;
         if (trinity_desktop_lock_hidden_window_list.contains(destroy_event.window)) {