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:
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);