instead of using the menu window for _NET_SUPPORTING_WM_CHECK, create a
dummy one to use instead; allows us to not have to wait for menu_init(), so re-shuffle _NET_SUPPORTED slightly. ok sthen@
This commit is contained in:
36
xutil.c
36
xutil.c
@@ -260,27 +260,31 @@ xu_getatoms(void)
|
||||
}
|
||||
|
||||
void
|
||||
xu_setwmname(struct screen_ctx *sc)
|
||||
xu_ewmh_net_supported(struct screen_ctx *sc)
|
||||
{
|
||||
/*
|
||||
* set up the _NET_SUPPORTED hint with all netwm atoms that we
|
||||
* know about.
|
||||
*/
|
||||
XChangeProperty(X_Dpy, sc->rootwin, _NET_SUPPORTED, XA_ATOM, 32,
|
||||
PropModeReplace, (unsigned char *)&_NET_SUPPORTED,
|
||||
CWM_NO_ATOMS - CWM_NETWM_START);
|
||||
/*
|
||||
* netwm spec says that to prove that the hint is not stale you must
|
||||
* provide _NET_SUPPORTING_WM_CHECK containing a window (we use the
|
||||
* menu window). The property must be set on the root window and the
|
||||
* window itself, the window also must have _NET_WM_NAME set with the
|
||||
* window manager name.
|
||||
*/
|
||||
}
|
||||
|
||||
/*
|
||||
* The netwm spec says that to prove that the hint is not stale, one
|
||||
* must provide _NET_SUPPORTING_WM_CHECK containing a window created by
|
||||
* the root window. The property must be set on the root window and the
|
||||
* window itself. This child window also must have _NET_WM_NAME set with
|
||||
* the window manager name.
|
||||
*/
|
||||
void
|
||||
xu_ewmh_net_supported_wm_check(struct screen_ctx *sc)
|
||||
{
|
||||
Window w;
|
||||
|
||||
w = XCreateSimpleWindow(X_Dpy, sc->rootwin, -1, -1, 1, 1, 0, 0, 0);
|
||||
XChangeProperty(X_Dpy, sc->rootwin, _NET_SUPPORTING_WM_CHECK,
|
||||
XA_WINDOW, 32, PropModeReplace, (unsigned char *)&sc->menuwin, 1);
|
||||
XChangeProperty(X_Dpy, sc->menuwin, _NET_SUPPORTING_WM_CHECK,
|
||||
XA_WINDOW, 32, PropModeReplace, (unsigned char *)&sc->menuwin, 1);
|
||||
XChangeProperty(X_Dpy, sc->menuwin, _NET_WM_NAME, UTF8_STRING,
|
||||
XA_WINDOW, 32, PropModeReplace, (unsigned char *)&w, 1);
|
||||
XChangeProperty(X_Dpy, w, _NET_SUPPORTING_WM_CHECK,
|
||||
XA_WINDOW, 32, PropModeReplace, (unsigned char *)&w, 1);
|
||||
XChangeProperty(X_Dpy, w, _NET_WM_NAME, UTF8_STRING,
|
||||
8, PropModeReplace, WMNAME, strlen(WMNAME));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user