wmii

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

commit 61e4d38f66e82bbf5652a90f6edff06f69412889
parent b5c72baed6d135d3e70635f469623a11884bc4a2
Author: Anselm R. Garbe <garbeam@wmii.de>
Date:   Mon, 19 Jun 2006 13:18:09 +0200

implemented horizontal selection


Diffstat:
cmd/wm/view.c | 40+++++++++++++++++++++++++++++++---------
rc/wmiirc | 10+++++-----
2 files changed, 36 insertions(+), 14 deletions(-)

diff --git a/cmd/wm/view.c b/cmd/wm/view.c @@ -368,28 +368,50 @@ view_index(View *v) { return buf; } +Client * +client_of_message(char *message, unsigned int *next) +{ + unsigned int i, n; + Client *c; + + if(!strncmp(message, "sel ", 4)) + return sel_client(); + if((1 != sscanf(message, "%d %n", &i, &n))) + return nil; + for(c=client; i && c; c=c->next, i--); + return c; +} + +Frame * +clientframe_of_view(View *v, Client *c) +{ + Frame *f; + for(f=c->frame; f; f=f->cnext) + if(f->area->view == v) + break; + return f; +} + /* XXX: This will need cleanup too */ char * message_view(View *v, char *message) { - unsigned int i, n; + unsigned int n; Frame *f; Client *c; static char Ebadvalue[] = "bad value"; if(!strncmp(message, "send ", 5)) { message += 5; - if(1 != sscanf(message, "%d %n", &i, &n)) - return Ebadvalue; - for(c=client; i && c; c=c->next, i--); - if(!c) + if(!(c = client_of_message(message, &n))) return Ebadvalue; - for(f=c->frame; f; f=f->cnext) - if(f->area->view == v) - break; - if(!f) + if(!(f = clientframe_of_view(v, c))) return Ebadvalue; return send_client(f, &message[n]); } + else if(!strncmp(message, "select ", 7)) { + message += 7; + select_area(v->sel, message); + } return nil; } diff --git a/rc/wmiirc b/rc/wmiirc @@ -163,15 +163,15 @@ do $MODKEY-Return) PATH="$OLD_PATH" xterm &;; $MODKEY-Shift-$LEFT) - xwrite /tag/sel/ctl send prev;; + xwrite /tag/sel/ctl send sel prev;; $MODKEY-Shift-$RIGHT) - xwrite /tag/sel/ctl send next;; + xwrite /tag/sel/ctl send sel next;; $MODKEY-Shift-$DOWN) - xwrite /tag/sel/ctl send down;; + xwrite /tag/sel/ctl send sel down;; $MODKEY-Shift-$UP) - xwrite /tag/sel/ctl send up;; + xwrite /tag/sel/ctl send sel up;; $MODKEY-Shift-space) - xwrite /tag/sel/ctl send toggle;; + xwrite /tag/sel/ctl send sel toggle;; $MODKEY-Shift-c) xwrite /client/sel/ctl kill;; $MODKEY-Shift-t)