summary refs log tree commit diff
diff options
context:
space:
mode:
authoroga <oga>2009-12-07 23:19:51 +0000
committeroga <oga>2009-12-07 23:19:51 +0000
commitaa88d5848e0b3ee3ea7c64c7582eddd963dcecb2 (patch)
treec1a5ead28fa7e68875113d9c20db450c4b2110e3
parent728d2a40dd4e0151c6473179d35ca08fd0a0f1b4 (diff)
downloadcwm-aa88d5848e0b3ee3ea7c64c7582eddd963dcecb2.tar.gz
cwm-aa88d5848e0b3ee3ea7c64c7582eddd963dcecb2.tar.xz
cwm-aa88d5848e0b3ee3ea7c64c7582eddd963dcecb2.zip
Implement _NET_NUMBER_OF_DESKTOPS, currently this is statically 9 and
unchangable. the group code needs some cleaning up before this will be a
bit less hackish.

ok okan@
-rw-r--r--calmwm.c9
-rw-r--r--calmwm.h4
-rw-r--r--group.c2
-rw-r--r--xutil.c1
4 files changed, 12 insertions, 4 deletions
diff --git a/calmwm.c b/calmwm.c
index a41c772..37fa473 100644
--- a/calmwm.c
+++ b/calmwm.c
@@ -147,7 +147,7 @@ x_setupscreen(struct screen_ctx *sc, u_int which)
 	XWindowAttributes	 winattr;
 	XSetWindowAttributes	 rootattr;
 	int			 fake;
-	u_int			 nwins, i;
+	u_int			 ndesks = CALMWM_NGROUPS, nwins, i;
 
 	Curscreen = sc;
 
@@ -166,6 +166,13 @@ x_setupscreen(struct screen_ctx *sc, u_int which)
 	/* Initialize menu window. */
 	menu_init(sc);
 
+	/*
+	 * XXX this probably should be somewhere else, but since it's a 
+	 * static value for now it does ok.
+	 */
+	XChangeProperty(X_Dpy, sc->rootwin, _NET_NUMBER_OF_DESKTOPS,
+	    XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&ndesks, 1);
+
 	xu_setwmname(sc);
 
 	/* Deal with existing clients. */
diff --git a/calmwm.h b/calmwm.h
index 9885117..4201968 100644
--- a/calmwm.h
+++ b/calmwm.h
@@ -159,6 +159,7 @@ TAILQ_HEAD(client_ctx_q, client_ctx);
 
 extern const char *shortcut_to_name[];
 
+#define CALMWM_NGROUPS 9
 struct group_ctx {
 	TAILQ_ENTRY(group_ctx)	 entry;
 	struct client_ctx_q	 clients;
@@ -528,7 +529,8 @@ extern struct conf			 Conf;
 #define	_NET_WM_NAME			 cwm_atoms[9]
 #define	_NET_ACTIVE_WINDOW		 cwm_atoms[10]
 #define _NET_CLIENT_LIST		 cwm_atoms[11]
-#define CWM_NO_ATOMS			 12
+#define	_NET_NUMBER_OF_DESKTOPS		 cwm_atoms[12]
+#define CWM_NO_ATOMS			 13
 #define CWM_NETWM_START			 7
 
 extern Atom				 cwm_atoms[CWM_NO_ATOMS];
diff --git a/group.c b/group.c
index d4d08b5..86aedc2 100644
--- a/group.c
+++ b/group.c
@@ -22,8 +22,6 @@
 #include "headers.h"
 #include "calmwm.h"
 
-#define CALMWM_NGROUPS 9
-
 static void		 group_add(struct group_ctx *, struct client_ctx *);
 static void		 group_remove(struct client_ctx *);
 static void		 group_hide(struct group_ctx *);
diff --git a/xutil.c b/xutil.c
index 6b191ff..489b187 100644
--- a/xutil.c
+++ b/xutil.c
@@ -183,6 +183,7 @@ char 		*atoms[CWM_NO_ATOMS] = {
 	"_NET_WM_NAME",
 	"_NET_ACTIVE_WINDOW",
 	"_NET_CLIENT_LIST",
+	"_NET_NUMBER_OF_DESKTOPS",
 };
 
 void