diff options
Diffstat (limited to 'wm/dwm-6.4')
| -rw-r--r-- | wm/dwm-6.4/dwm.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/wm/dwm-6.4/dwm.c b/wm/dwm-6.4/dwm.c index e184613..159f5d7 100644 --- a/wm/dwm-6.4/dwm.c +++ b/wm/dwm-6.4/dwm.c @@ -74,6 +74,7 @@ enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */ enum { SchemeNorm, SchemeSel }; /* color schemes */ enum { NetSupported, NetWMName, NetWMIcon, NetWMState, NetWMCheck, NetWMFullscreen, NetActiveWindow, NetWMWindowType, + NetWMWindowTypeDesktop, NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */ enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */ enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, @@ -1216,6 +1217,15 @@ manage(Window w, XWindowAttributes *wa) c = ecalloc(1, sizeof(Client)); c->win = w; c->pid = winpid(w); + + if (getatomprop(c, netatom[NetWMWindowType]) == netatom[NetWMWindowTypeDesktop]) + { + XMapWindow(dpy, c->win); + XLowerWindow(dpy, c->win); + free(c); + return; + } + /* geometry */ c->x = c->oldx = wa->x; c->y = c->oldy = wa->y; @@ -1775,6 +1785,7 @@ setup(void) netatom[NetWMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False); netatom[NetWMWindowType] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False); netatom[NetWMWindowTypeDialog] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DIALOG", False); + netatom[NetWMWindowTypeDesktop] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DESKTOP", False); netatom[NetClientList] = XInternAtom(dpy, "_NET_CLIENT_LIST", False); /* init cursors */ cursor[CurNormal] = drw_cur_create(drw, XC_left_ptr); |