wmii

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

commit 1e96f98c3849f0d10c4a1c7f128d5217622ae944
parent ddc783198f41a45131d64883cfcc787a4964c4bf
Author: Anselm R. Garbe <garbeam@wmii.de>
Date:   Sat, 21 Jan 2006 18:40:07 +0200

merge



Diffstat:
cmd/wm/page.c | 26++++++++++++++++----------
cmd/wm/wm.c | 1-
2 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/cmd/wm/page.c b/cmd/wm/page.c @@ -67,6 +67,7 @@ alloc_page() void destroy_page(Page * p) { + Page *newselpage; AttachQueue *o, *n; while(attachqueue && (attachqueue->page == p)) { @@ -93,10 +94,11 @@ destroy_page(Page * p) def[WM_SEL_PAGE]->content = 0; ixp_remove_file(ixps, p->file[P_PREFIX]); if(p == selpage) { + selpage = nil; if(p->prev) - selpage = p->prev; + newselpage = p->prev; else - selpage = nil; + newselpage = nil; } if(p == pages) { @@ -118,10 +120,11 @@ destroy_page(Page * p) --(p->index); } - if(!selpage) - selpage = pages; + if(!newselpage) + newselpage = pages; npages--; XChangeProperty(dpy, root, net_atoms[NET_NUMBER_OF_DESKTOPS], XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &npages, 1); + focus_page(newselpage); } void @@ -130,14 +133,17 @@ focus_page(Page * p) if(!p) return; - if(selpage) { - unmap_layout(selpage->managed); - unmap_layout(selpage->floating); + if((p != selpage)) { + if(selpage) { + unmap_layout(selpage->managed); + unmap_layout(selpage->floating); + } } - map_layout(p->managed, False); - map_layout(p->floating, False); - + if(p != selpage) { + map_layout(p->managed, False); + map_layout(p->floating, False); + } selpage = p; def[WM_SEL_PAGE]->content = p->file[P_PREFIX]->content; invoke_wm_event(def[WM_EVENT_PAGE_UPDATE]); diff --git a/cmd/wm/wm.c b/cmd/wm/wm.c @@ -446,7 +446,6 @@ static void xdestroy_page(void *obj, char *arg) { destroy_page(selpage); - focus_page(selpage); } static void