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:
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)