|
|
|
@ -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)) {
|
|
|
|
|