mirror of
https://github.com/0intro/wmii
synced 2024-11-22 13:52:17 +03:00
Use a backing store, and more/resize uncollapsed clients first for flicker prevention.
This commit is contained in:
parent
162d53212e
commit
d1428fafd0
5
client.c
5
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);
|
||||
|
9
column.c
9
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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user