wmii

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

commit 71b81b54ffad9c96aff1ece32a1369278a2296ca
parent 529a035b51b2acdbe33f2290887e6a1414e82f7c
Author: Anselm R. Garbe <garbeam@wmii.de>
Date:   Mon, 19 Jun 2006 18:35:51 +0200

removed update_widgets/resize_frame calls from draw_frame (only done when necessary now)


Diffstat:
cmd/wm/client.c | 14+++++++++++---
cmd/wm/frame.c | 4----
cmd/wm/wm.h | 2++
3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/cmd/wm/client.c b/cmd/wm/client.c @@ -155,10 +155,15 @@ focus_client(Client *c, Bool restack) if(!c->floating && f->area->mode == Colstack) arrange_column(f->area, False); XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime); - if(old && old != old_in_area && old != c) + if(old && old != old_in_area && old != c) { + update_frame_widget_colors(old->sel); draw_frame(old->sel); - if(old_in_area && old_in_area != c) + } + if(old_in_area && old_in_area != c) { + update_frame_widget_colors(old_in_area->sel); draw_frame(old_in_area->sel); + } + update_frame_widget_colors(c->sel); draw_frame(c->sel); XSync(dpy, False); snprintf(buf, sizeof(buf), "ClientFocus %d\n", idx_of_client(c)); @@ -505,6 +510,7 @@ resize_client(Client *c, XRectangle *r, Bool ignore_xcall) else XMoveResizeWindow(dpy, c->framewin, 2 * rect.width + f->rect.x, f->rect.y, f->rect.width, f->rect.height); + resize_frame(f); } c->rect.x = def.border; @@ -721,8 +727,10 @@ draw_clients() { Client *c; for(c=client; c; c=c->next) - if(c->sel && (c->sel->area->view == sel)) + if(c->sel && (c->sel->area->view == sel)) { + update_frame_widget_colors(c->sel); draw_frame(c->sel); + } } static Bool diff --git a/cmd/wm/frame.c b/cmd/wm/frame.c @@ -187,10 +187,6 @@ resize_frame(Frame *f) void draw_frame(Frame *f) { - /* XXX: should be called on area change focus/attach/detach */ - update_frame_widget_colors(f); - /* XXX: should be called after resize */ - resize_frame(f); f->tile->draw(f->tile); f->tagbar->draw(f->tagbar); f->titlebar->draw(f->titlebar); diff --git a/cmd/wm/wm.h b/cmd/wm/wm.h @@ -283,6 +283,8 @@ int idx_of_frame(Frame *f); Frame *frame_of_id(Area *a, unsigned short id); Client *frame_of_win(Window w); void draw_frame(Frame *f); +void resize_frame(Frame *f); +void update_frame_widget_colors(Frame *f); /* fs.c */ void fs_attach(Req *r);