commit 40a69dddaf176fcc3512ccd5d382f9012831886d
parent 2b3eb084f7473a7dce0a507550a97d4616b9c7b3
Author: Anselm R. Garbe <garbeam@wmii.de>
Date: Thu, 6 Apr 2006 12:52:20 +0200
fixed mouse grabbing for selection and resizals
Diffstat:
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/cmd/wm/client.c b/cmd/wm/client.c
@@ -90,14 +90,8 @@ focus_client(Client *c)
v->sel = i;
f->area->sel = frame2index(f);
- if(old && (old != c)) {
- grab_mouse(old->framewin, AnyModifier, Button1);
+ if(old)
draw_client(old);
- }
- ungrab_mouse(c->framewin, AnyModifier, AnyButton);
- grab_mouse(c->framewin, Mod1Mask, Button1);
- grab_mouse(c->framewin, Mod1Mask, Button3);
-
restack_view(v);
XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime);
diff --git a/cmd/wm/view.c b/cmd/wm/view.c
@@ -269,9 +269,17 @@ restack_view(View *v)
if(a->frame.size) {
wins[n++] = a->frame.data[a->sel]->client->framewin;
for(j = 0; j < a->frame.size; j++) {
+ Client *c = a->frame.data[j]->client;
+ if((v->sel == i) && (a->sel == j)) {
+ ungrab_mouse(c->framewin, AnyModifier, AnyButton);
+ grab_mouse(c->framewin, Mod1Mask, Button1);
+ grab_mouse(c->framewin, Mod1Mask, Button3);
+ }
+ else
+ grab_mouse(c->framewin, AnyModifier, Button1);
if(j == a->sel)
continue;
- wins[n++] = a->frame.data[j]->client->framewin;
+ wins[n++] = c->framewin;
}
}
}