You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.6 KiB
59 lines
2.6 KiB
12 years ago
|
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)) {
|