wmii

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

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:
cmd/wmii/fs.c | 3+--
cmd/wmii/main.c | 4++--
cmd/wmii/view.c | 25++++++++++++++-----------
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