cleanupmon(mons);
XSync(dpy, False);
XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
+ XDeleteProperty(dpy, root, netatom[NetActiveWindow]);
}
void
XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
setfocus(c);
}
- else
+ else {
XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
+ XDeleteProperty(dpy, root, netatom[NetActiveWindow]);
+ }
selmon->sel = c;
drawbars();
}
if(ev->window != root)
return;
if((m = recttomon(ev->x_root, ev->y_root, 1, 1)) != mon && mon) {
+ unfocus(selmon->sel, True);
selmon = m;
focus(NULL);
}
&& (abs(nx - c->x) > snap || abs(ny - c->y) > snap))
togglefloating(NULL);
}
- if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
+ if(!selmon->lt[selmon->sellt]->arrange || c->isfloating) {
+ if(c->isfullscreen)
+ setfullscreen(c, False);
resize(c, nx, ny, c->w, c->h, True);
+ }
break;
}
} while(ev.type != ButtonRelease);
&& (abs(nw - c->w) > snap || abs(nh - c->h) > snap))
togglefloating(NULL);
}
- if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
+ if(!selmon->lt[selmon->sellt]->arrange || c->isfloating) {
+ if(c->isfullscreen)
+ setfullscreen(c, False);
resize(c, c->x, c->y, nw, nh, True);
+ }
break;
}
} while(ev.type != ButtonRelease);
void
setfocus(Client *c) {
- if(!c->neverfocus)
+ if(!c->neverfocus) {
XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
+ XChangeProperty(dpy, root, netatom[NetActiveWindow],
+ XA_WINDOW, 32, PropModeReplace,
+ (unsigned char *) &(c->win), 1);
+ }
sendevent(c, wmatom[WMTakeFocus]);
}
if(selmon->sel->isfloating)
resize(selmon->sel, selmon->sel->x, selmon->sel->y,
selmon->sel->w, selmon->sel->h, False);
+ else if(selmon->sel->isfullscreen)
+ setfullscreen(selmon->sel, False);
arrange(selmon);
}
return;
grabbuttons(c, False);
XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
- if(setfocus)
+ if(setfocus) {
XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
+ XDeleteProperty(dpy, root, netatom[NetActiveWindow]);
+ }
}
void
if(state == netatom[NetWMFullscreen])
setfullscreen(c, True);
-
if(wtype == netatom[NetWMWindowTypeDialog])
c->isfloating = True;
}