wmii

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

commit 6ca06ed97adef65e959106e5547894b50d8908c7
parent 4f833eb4e47f198c0a0828ad3234aa193ff1bf02
Author: Kris Maglione <bsdaemon@wmii.de>
Date:   Tue, 20 Jun 2006 19:43:20 -0400

Temporarilly re-added fs support for colmodes


Diffstat:
cmd/wm/fs.c | 2+-
cmd/wm/view.c | 46+++++++++++++++++++++++++++++++++++++++++-----
libixp/request.c | 5+++++
rc/wmiirc | 6+++---
4 files changed, 50 insertions(+), 9 deletions(-)

diff --git a/cmd/wm/fs.c b/cmd/wm/fs.c @@ -1,5 +1,5 @@ /* - * (C)opyright MMVI Kris Maglione <bsdaemon at comcast dot net> + * (C)opyright MMVI Kris Maglione <fbsdaemon at gmail dot com> * See LICENSE file for license details. */ diff --git a/cmd/wm/view.c b/cmd/wm/view.c @@ -342,6 +342,11 @@ is_view_of(Client *c, View *v) return False; } +Client * +sel_client_of_view(View *v) { + return v->sel && v->sel->sel ? v->sel->sel->client : nil; +} + /* XXX: This will need cleanup */ unsigned char * view_index(View *v) { @@ -374,14 +379,14 @@ view_index(View *v) { } Client * -client_of_message(char *message, unsigned int *next) +client_of_message(View *v, char *message, unsigned int *next) { unsigned int i; Client *c; if(!strncmp(message, "sel ", 4)) { *next = 4; - return sel_client(); + return sel_client_of_view(v); } if((1 != sscanf(message, "%d %n", &i, next))) return nil; @@ -389,6 +394,24 @@ client_of_message(char *message, unsigned int *next) return c; } +Area * +area_of_message(View *v, char *message, unsigned int *next) { + unsigned int i; + Area *a; + + if(!strncmp(message, "sel ", 4)) { + *next = 4; + return v->sel; + } + if(!strncmp(message, "~ ", 2)) { + return v->area; + } + if(1 != sscanf(message, "%d %n", &i, next) || i == 0) + return nil; + for(a=v->area; i && a; a=a->next, i--); + return a; +} + Frame * clientframe_of_view(View *v, Client *c) { @@ -402,14 +425,15 @@ clientframe_of_view(View *v, Client *c) /* XXX: This will need cleanup too */ char * message_view(View *v, char *message) { - unsigned int n; - Frame *f; + unsigned int n, i; Client *c; + Frame *f; + Area *a; static char Ebadvalue[] = "bad value"; if(!strncmp(message, "send ", 5)) { message += 5; - if(!(c = client_of_message(message, &n))) + if(!(c = client_of_message(v, message, &n))) return Ebadvalue; if(!(f = clientframe_of_view(v, c))) return Ebadvalue; @@ -419,6 +443,18 @@ message_view(View *v, char *message) { message += 7; return select_area(v->sel, message); } + if(!strncmp(message, "colmode ", 8)) { + message += 8; + if(!(a = area_of_message(v, message, &n)) || a == v->area) + return Ebadvalue; + if((i = column_mode_of_str(&message[n])) == -1) + return Ebadvalue; + a->mode = i; + arrange_column(a, True); + restack_view(v); + draw_frames(); + return nil; + } return Ebadvalue; } diff --git a/libixp/request.c b/libixp/request.c @@ -1,3 +1,8 @@ +/* + * (C)opyright MMVI Kris Maglione <fbsdaemon at gmail dot com> + * See LICENSE file for license details. + */ + #include <stdlib.h> #include <stdio.h> #include <string.h> diff --git a/rc/wmiirc b/rc/wmiirc @@ -157,11 +157,11 @@ do $MODKEY-space) xwrite /tag/sel/ctl select toggle;; $MODKEY-d) - xwrite /tag/sel/sel/mode default;; + xwrite /tag/sel/ctl colmode sel default;; $MODKEY-s) - xwrite /tag/sel/sel/mode stack;; + xwrite /tag/sel/ctl colmode sel stack;; $MODKEY-m) - xwrite /tag/sel/sel/mode max;; + xwrite /tag/sel/ctl colmode sel max;; $MODKEY-f) xwrite /tag/sel/0/sel/geom 0 0 0 0;; $MODKEY-a)