wmii

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

commit d1428fafd0138d697a0cf38f7fc8123567ddb59b
parent 162d53212ecf00dc7d20db93c6251469bf29b623
Author: Kris Maglione <jg@suckless.org>
Date:   Sat,  3 Mar 2007 02:23:22 -0500

Use a backing store, and more/resize uncollapsed clients first for flicker prevention.

Diffstat:
client.c | 5+++--
column.c | 9+++++++--
2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/client.c b/client.c @@ -47,6 +47,7 @@ create_client(Window w, XWindowAttributes *wa) { fwa.override_redirect = 1; fwa.background_pixmap = ParentRelative; + fwa.backing_store = Always; fwa.event_mask = SubstructureRedirectMask | SubstructureNotifyMask @@ -67,7 +68,7 @@ create_client(Window w, XWindowAttributes *wa) { /* depth */ DefaultDepth(blz.dpy, blz.screen), /* class */ CopyFromParent, /* visual */ DefaultVisual(blz.dpy, blz.screen), - /* valuemask */ CWOverrideRedirect | CWEventMask | CWBackPixmap, + /* valuemask */ CWOverrideRedirect | CWEventMask | CWBackPixmap | CWBackingStore, /* attributes */&fwa ); @@ -622,7 +623,7 @@ resize_client(Client *c, XRectangle *r) { f = c->sel; resize_frame(f, r); - if(f->area->view == screen->sel) + if(f->area->view == screen->sel) XMoveResizeWindow(blz.dpy, c->framewin, f->rect.x, f->rect.y, f->rect.width, f->rect.height); diff --git a/column.c b/column.c @@ -179,9 +179,14 @@ arrange_column(Area *a, Bool dirty) { } scale_column(a); resize: - if(a->view == screen->sel) + if(a->view == screen->sel) { for(f=a->frame; f; f=f->anext) - resize_client(f->client, &f->rect); + if(!f->collapsed) + resize_client(f->client, &f->rect); + for(f=a->frame; f; f=f->anext) + if(f->collapsed) + resize_client(f->client, &f->rect); + } flush_masked_events(EnterWindowMask); }