XButtonPressedEvent *ev = &e->xbutton;
if(barwin == ev->window) {
- if(ev->x < modew)
- return;
- x = modew;
+ x = 0;
for(a.i = 0; a.i < ntags; a.i++) {
x += textw(tags[a.i]);
if(ev->x < x) {
return;
}
}
+ if(ev->x < x + bmw) {
+ if(ev->button == Button1)
+ togglemode(NULL);
+ }
}
else if((c = getclient(ev->window))) {
focus(c);
- if(CLEANMASK(ev->state) == 0)
+ if(CLEANMASK(ev->state) != MODKEY)
return;
switch(ev->button) {
default:
static void
configurerequest(XEvent *e)
{
+ int ox, oy, ow, oh;
unsigned long newmask;
Client *c;
XConfigureRequestEvent *ev = &e->xconfigurerequest;
XWindowChanges wc;
if((c = getclient(ev->window))) {
+ ox = c->x;
+ oy = c->y;
+ ow = c->w;
+ oh = c->h;
gravitate(c, True);
if(ev->value_mask & CWX)
c->x = ev->x;
XSendEvent(dpy, c->win, True, NoEventMask, &synev);
}
XSync(dpy, False);
- if(c->isfloat)
+ if(c->isfloat || c->ismax) {
resize(c, False, TopLeft);
+ c->x = ox;
+ c->y = oy;
+ c->w = ow;
+ c->h = oh;
+ }
else
arrange(NULL);
}