commit 1ec81ff9c0ee3c7df325fce050f9bac0a3d0d704
parent e012b7c5f7c9e347af196e22396fcdef4be26049
Author: Kris Maglione <jg@suckless.org>
Date: Fri, 30 Mar 2007 00:26:35 -0400
The 'nil' view is no longer particularly special. Generate CreateTag events before CreteArea events.
Diffstat:
3 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/cmd/wmii/fs.c b/cmd/wmii/fs.c
@@ -281,8 +281,7 @@ message_root(char *message)
return Ebadvalue;
strncpy(def.grabmod, message, sizeof(def.grabmod));
def.mod = mod;
- if(view)
- restack_view(screen->sel);
+ restack_view(screen->sel);
}
else
return Ebadcmd;
diff --git a/cmd/wmii/main.c b/cmd/wmii/main.c
@@ -564,9 +564,9 @@ main(int argc, char *argv[]) {
scan_wins();
starting = False;
+ select_view("nil");
update_views();
- if(view)
- write_event("FocusTag %s\n", screen->sel->name);
+ write_event("FocusTag %s\n", screen->sel->name);
check_x_event(nil);
errstr = ixp_serverloop(&srv);
diff --git a/cmd/wmii/view.c b/cmd/wmii/view.c
@@ -58,17 +58,21 @@ get_view(const char *name) {
View *
create_view(const char *name) {
static ushort id = 1;
- View **i, *v = emallocz(sizeof(View));
+ View **i, *v;
+ v = emallocz(sizeof(View));
v->id = id++;
strncpy(v->name, name, sizeof(v->name));
+
+ write_event("CreateTag %s\n", v->name);
create_area(v, nil, 0);
create_area(v, v->area, 0);
+
for(i=&view; *i; i=&(*i)->next)
if(strcmp((*i)->name, name) < 0) break;
v->next = *i;
*i = v;
- write_event("CreateTag %s\n", v->name);
+
if(!screen->sel)
assign_sel_view(v);
return v;
@@ -407,20 +411,19 @@ send:
void
update_views() {
- View *n, *v;
- View *old = screen->sel;
+ View *n, *v, *old;
+ old = screen->sel;
for(v=view; v; v=v->next)
update_frame_selectors(v);
- if(old && !strncmp(old->name, "nil", 4))
- old = nil;
- for((v=view) && (n=v->next); v; (v=n) && (n=v->next))
+
+ for(v=view; v; v=n) {
+ n=v->next;
if((v != old) && is_empty(v))
destroy_view(v);
- if(old)
- focus_view(screen, old);
- else if(screen->sel)
- focus_view(screen, screen->sel);
+ }
+
+ focus_view(screen, old);
}
uint