commit 887fd1ead89d56b89b94244ccf0f22b99cbf0200
parent 9c275f439d185d5b7dff54f64c654278ac8ce264
Author: Kris Maglione <bsdaemon@wmii.de>
Date: Mon, 26 Jun 2006 17:09:35 -0400
Fixed possible sel==nil on destroy_view
Diffstat:
2 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/cmd/wm/client.c b/cmd/wm/client.c
@@ -671,16 +671,15 @@ send_client(Frame *f, char *arg)
void
focus(Client *c, Bool restack)
{
- Frame *f = c->sel;
View *v;
+ Frame *f;
- if(!f)
- return;
-
+ if(!(f = c->sel)) return;
v = f->area->view;
- if(sel != v)
- focus_view(v);
+
+ arrange_column(f->area, False);
focus_client(c, restack);
+ focus_view(v);
}
Client *
diff --git a/cmd/wm/view.c b/cmd/wm/view.c
@@ -37,8 +37,6 @@ get_view(const char *name)
break;
if(!v || cmp != 0)
v = create_view(name);
- if(!sel)
- sel = v;
return v;
}
@@ -93,7 +91,7 @@ destroy_view(View *v)
*i = v->next;
if(sel == v)
- for(sel=view; sel; sel=sel->next)
+ for(sel=view; sel && sel->next; sel=sel->next)
if(sel->next == *i) break;
write_event("DestroyTag %s\n", v->name);