wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit 7185da87dd38434ccdbf883969e3255f0de2e302
parent 98cd2cda011b6098ef0bef3f65e35b721eab35ac
Author: Kris Maglione <jg@suckless.org>
Date:   Fri,  9 Feb 2007 00:07:22 -0500

Minimize the calls to focus_client on ButtonClick events (maybe this will fix the freeze)


Diffstat:
event.c | 4++--
frame.c | 7++++---
wmii.h | 2+-
3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/event.c b/event.c @@ -64,8 +64,8 @@ buttonpress(XEvent *e) { } }else{ if(ev->button == Button1) { - frame_to_top(f); - focus(f->client, True); + if(frame_to_top(f) || f->client != sel_client) + focus(f->client, True); if(ispointinrect(ev->x, ev->y, &f->titlebar.rect) ||ispointinrect(ev->x, ev->y, &f->grabbox.rect)) do_mouse_resize(f->client, CENTER); diff --git a/frame.c b/frame.c @@ -95,19 +95,20 @@ resize_frame(Frame *f, XRectangle *r) { match_sizehints(c, &f->rect, f->area->floating, stickycorner); } -void +Bool frame_to_top(Frame *f) { Frame **tf; Area *a; a = f->area; - if(!a->floating) - return; + if(!a->floating || f == a->stack) + return False; for(tf=&a->stack; *tf; tf=&(*tf)->snext) if(*tf == f) break; *tf = f->snext; f->snext = a->stack; a->stack = f; + return True; } void diff --git a/wmii.h b/wmii.h @@ -322,7 +322,7 @@ extern Frame *create_frame(Client *c, View *v); extern void remove_frame(Frame *f); extern void insert_frame(Frame *pos, Frame *f, Bool before); extern void resize_frame(Frame *f, XRectangle *r); -extern void frame_to_top(Frame *f); +extern Bool frame_to_top(Frame *f); extern void swap_frames(Frame *fa, Frame *fb); extern void draw_frame(Frame *f); extern void draw_frames();