From f08f943282722324dc8cef37b9c2e17a6482add7 Mon Sep 17 00:00:00 2001 From: Sander van Dijk Date: Sat, 21 Jan 2006 22:45:11 +0100 Subject: [PATCH] cure wmiiwm sudden death on removal of last remaining page --- cmd/wm/page.c | 13 +++++++++---- rc/wmiirc | 6 +++--- 2 files changed, 12 insertions(+), 7 deletions(-) mode change 100644 => 100755 rc/wmiirc diff --git a/cmd/wm/page.c b/cmd/wm/page.c index 9649bef6..825329b7 100644 --- a/cmd/wm/page.c +++ b/cmd/wm/page.c @@ -103,10 +103,12 @@ destroy_page(Page * p) } if(p == pages) { - if(p->next) + if(p->next) { p->next->prev = nil; - pages = p->next; - pages->index = 0; + pages = p->next; + pages->index = 0; + } else + pages = nil; } else { p->prev->next = p->next; if(p->next) @@ -132,8 +134,11 @@ destroy_page(Page * p) void focus_page(Page * p) { - if(!p) + if(!p) { + XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); + invoke_wm_event(def[WM_EVENT_PAGE_UPDATE]); return; + } if((p != selpage)) { if(selpage) { diff --git a/rc/wmiirc b/rc/wmiirc old mode 100644 new mode 100755 index cde759ea..520ae521 --- a/rc/wmiirc +++ b/rc/wmiirc @@ -111,9 +111,9 @@ wmiir write /wm/event/clientupdate \ 'text=`{wmiir read /wm/sel/layout/sel/frame/sel/name}' ^\ 'wmiir write /bar/'^$clab^'/data $"text' wmiir write /wm/event/pageupdate \ -'wmiir write /bar/'^$plab^'/data `{wmiir read /wm/sel/name} &&' ^\ -'wmiir write /bar/'^$klab^'/data `{wmiir read /keys/lookup|sed ''s|/mode/||''} && ' ^\ -'wmiir write /bar/'^$llab^'/data `{wmiir read /wm/sel/layout/sel/name}' +'text=`{wmiir read /wm/sel/name}; wmiir write /bar/'^$plab^'/data $"text &&' ^\ +'text=`{wmiir read /keys/lookup|sed ''s|/mode/||''}; wmiir write /bar/'^$klab^'/data $"text && ' ^\ +'text=`{wmiir read /wm/sel/layoutname}; wmiir write /bar/'^$llab^'/data $"text' for(page in `{wmiir read /wm | grep '^[0-9]'}) { framesconf /wm/$page/layout/float/frame