wmii

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

commit 4a19a52003d93f1ff8349a75aebe3571c6ad5402
parent e06577f5ec2ae74e2744c36796daadcce8b6dcbd
Author: Anselm R. Garbe <garbeam@wmii.de>
Date:   Mon, 13 Feb 2006 10:31:38 +0100

proceeded with wm stuff


Diffstat:
cmd/wm/client.c | 38++++++++++++++++++++++++++++++++++++++
cmd/wm/column.c | 50++++++++++++++++++++++++++++++++++++++++++++++++++
cmd/wm/page.c | 96+------------------------------------------------------------------------------
cmd/wm/wm.h | 1+
rc/wmiirc | 2+-
5 files changed, 91 insertions(+), 96 deletions(-)

diff --git a/cmd/wm/client.c b/cmd/wm/client.c @@ -573,3 +573,41 @@ client_to_index(Client *c) return i; return -1; } + + +void +select_client(Area *a, char *arg) +{ + Client *c; +/* size_t i;*/ + + if(!a->nclient) + return; + + if(area_to_index(a) > 0) + /*select_column(a->client[a-c, arg)*/; + else { + c = a->client[a->sel]; + /* + Area *a = c->area; + for(i = 0; (i < a->nclient) && (a->client[i] != c); i++); + if(!strncmp(arg, "prev", 5)) { + if(!i) + i = a->nclient - 1; + focus_client(a->client[i]); + } else if(!strncmp(arg, "next", 5)) { + if(i + 1 < a->nclient) + focus_client(a->client[i + 1]); + else + focus_client(a->client[0]); + } + else { + const char *errstr; + i = cext_strtonum(arg, 0, a->nclient - 1, &errstr); + if(errstr) + return; + focus_client(a->client[i]); + } + */ + } +} diff --git a/cmd/wm/column.c b/cmd/wm/column.c @@ -270,3 +270,53 @@ new_column(Page *p) update_column_width(p); focus_client(c); } + +/* +static void +swap_client(void *obj, char *arg) +{ + Page *p = obj; + Client *c = sel_client_of_page(p); + Area *west = nil, *east = nil, *col = c->area; + Client *north = nil, *south = nil; + size_t i; + + if(!col || !arg) + return; + + for(i = 1; i < p->narea && (p->area[i] != col); i++); + west = i ? p->area[i - 1] : nil; + east = (i < p->areasz) && p->area[i + 1] ? p->area[i + 1] : nil; + + for(i = 0; (i < col->nclient) && (col->client[i] != c); i++); + north = i ? col->client[i - 1] : nil; + south = (i + 1 < col->nclient) ? col->client[i + 1] : nil; + + if(!strncmp(arg, "north", 6) && north) { + col->client[i] = col->client[i - 1]; + col->client[i - 1] = c; + arrange_column(p, col); + } else if(!strncmp(arg, "south", 6) && south) { + col->client[i] = col->client[i + 1]; + col->client[i + 1] = c; + arrange_column(p, col); + } + else if(!strncmp(arg, "west", 5) && west) { + col->client[i] = west->client[west->sel]; + west->client[west->sel] = c; + west->client[west->sel]->area = west; + col->client[i]->area = col; + arrange_column(p, col); + arrange_column(p, west); + } else if(!strncmp(arg, "east", 5) && east) { + col->client[i] = west->client[west->sel]; + col->client[i]->area = col; + east->client[east->sel] = c; + east->client[east->sel]->area = east; + arrange_column(p, col); + arrange_column(p, east); + } + focus_client(c); +} + +*/ diff --git a/cmd/wm/page.c b/cmd/wm/page.c @@ -13,16 +13,12 @@ /* static void select_client(void *obj, char *arg); static void xexec(void *obj, char *arg); -static void swap_client(void *obj, char *arg); -static void xnew_column(void *obj, char *arg); */ /* action table for /?/ namespace */ /* Action page_acttbl[] = { - {"exec", xexec}, {"swap", swap_client}, - {"newcol", xnew_column}, {"select", select_client}, {0, 0} }; @@ -149,96 +145,6 @@ rectangles(unsigned int *num) return result; } -/* -static void -swap_client(void *obj, char *arg) -{ - Page *p = obj; - Client *c = sel_client_of_page(p); - Area *west = nil, *east = nil, *col = c->area; - Client *north = nil, *south = nil; - size_t i; - - if(!col || !arg) - return; - - for(i = 1; i < p->narea && (p->area[i] != col); i++); - west = i ? p->area[i - 1] : nil; - east = (i < p->areasz) && p->area[i + 1] ? p->area[i + 1] : nil; - - for(i = 0; (i < col->nclient) && (col->client[i] != c); i++); - north = i ? col->client[i - 1] : nil; - south = (i + 1 < col->nclient) ? col->client[i + 1] : nil; - - if(!strncmp(arg, "north", 6) && north) { - col->client[i] = col->client[i - 1]; - col->client[i - 1] = c; - arrange_column(p, col); - } else if(!strncmp(arg, "south", 6) && south) { - col->client[i] = col->client[i + 1]; - col->client[i + 1] = c; - arrange_column(p, col); - } - else if(!strncmp(arg, "west", 5) && west) { - col->client[i] = west->client[west->sel]; - west->client[west->sel] = c; - west->client[west->sel]->area = west; - col->client[i]->area = col; - arrange_column(p, col); - arrange_column(p, west); - } else if(!strncmp(arg, "east", 5) && east) { - col->client[i] = west->client[west->sel]; - col->client[i]->area = col; - east->client[east->sel] = c; - east->client[east->sel]->area = east; - arrange_column(p, col); - arrange_column(p, east); - } - focus_client(c); -} - -static void -xnew_column(void *obj, char *arg) -{ - new_column(obj); -} - -static void -select_client(void *obj, char *arg) -{ - Page *p = obj; - Client *c = sel_client_of_page(p); - size_t i; - - if(!c || !arg) - return; - - if(area_to_index(c->page, c->area) > 0) - select_column(c, arg); - else { - Area *a = c->area; - for(i = 0; (i < a->nclient) && (a->client[i] != c); i++); - if(!strncmp(arg, "prev", 5)) { - if(!i) - i = a->nclient - 1; - focus_client(a->client[i]); - } else if(!strncmp(arg, "next", 5)) { - if(i + 1 < a->nclient) - focus_client(a->client[i + 1]); - else - focus_client(a->client[0]); - } - else { - const char *errstr; - i = cext_strtonum(arg, 0, a->nclient - 1, &errstr); - if(errstr) - return; - focus_client(a->client[i]); - } - } -} -*/ - int pid_to_index(unsigned short id) { @@ -255,7 +161,7 @@ select_page(char *arg) size_t new = sel; const char *err; - if(!npage || !arg) + if(!npage) return; if(!strncmp(arg, "prev", 5)) { if(!new) diff --git a/cmd/wm/wm.h b/cmd/wm/wm.h @@ -227,6 +227,7 @@ void resize_client(Client *c, XRectangle * r, XPoint * pt); unsigned int bar_height(Client *c); int cid_to_index(Area *a, unsigned short id); int client_to_index(Client *c); +void select_client(Area *a, char *arg); /* event.c */ void init_x_event_handler(); diff --git a/rc/wmiirc b/rc/wmiirc @@ -100,7 +100,7 @@ rm -f /tmp/ns.$USER.$DISPLAY/p.menu @ items $OLD_PATH > /tmp/ns.$USER.$DISPLAY/p.menu & # MISC -xsetroot -solid '#162028' +xsetroot -solid '#0b1014' status & # EVENT LOOP