Stjepan Glavina
2006-Dec-28 13:12 UTC
[compiz] Patch: switcher's window is a splash window
Hi,
I made a simple patch which makes switcher's window a splash window
(_NET_WM_WINDOW_TYPE_SPLASH). This way I can easily add effects for it.
The window is a splash window, so why not use this type instead of
Unknown? Beryl's switcher window is a Splash window too. Is there a
reason why Compiz uses Uknown for it?
Patch:
--- switcher.c 2006-12-28 10:14:52.000000000 +0100
+++ switcher_new.c 2006-12-28 10:16:40.000000000 +0100
@@ -799,6 +799,13 @@
XA_ATOM, 32, PropModeReplace,
(unsigned char *) state, nState);
}
+
+ Atom type;
+ type = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_SPLASH", 0);
+ XChangeProperty(dpy, ss->popupWindow,
+ XInternAtom (dpy, "_NET_WM_WINDOW_TYPE", 0),
+ XA_ATOM, 32, PropModeReplace,
+ unsigned char *)&type, 1);
if (!ss->grabIndex)
ss->grabIndex = pushScreenGrab (s, s->invisibleCursor,
"switcher");
--
Stjepan
On Thu, 2006-12-28 at 22:14 +0100, Stjepan Glavina wrote:> Hi, > > I made a simple patch which makes switcher's window a splash window > (_NET_WM_WINDOW_TYPE_SPLASH). This way I can easily add effects for it. > The window is a splash window, so why not use this type instead of > Unknown? Beryl's switcher window is a Splash window too. Is there a > reason why Compiz uses Uknown for it?Splash window type indicates that the window is a splash screen displayed as an application is starting up. I wouldn't say that this is what the switcher window is. To me it seems like the switcher window better match the behavior of a parentless dialog or the new notification window type. A non-override-redirect window without a type hint should be considered of type Normal, according to the EWMH spec. So as long as I'm not convinced that some other type than Normal is more correct, I wont be setting that hint. You can always look for the "_SWITCH_SELECT_WINDOW" hint if you really need to determine if a window is a switcher window. -David