From 3b87bdb04759237cc4dbdca600854d1f95659fff Mon Sep 17 00:00:00 2001 From: oga Date: Fri, 11 Dec 2009 18:09:16 +0000 Subject: add _NET_WORKAREA. for now we ignore the gap, this'll change soonish. ok okan@ --- calmwm.h | 3 ++- screen.c | 15 ++++++++++++++- xutil.c | 1 + 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/calmwm.h b/calmwm.h index 3405a5f..fed9051 100644 --- a/calmwm.h +++ b/calmwm.h @@ -542,7 +542,8 @@ extern struct conf Conf; #define _NET_SHOWING_DESKTOP cwm_atoms[17] #define _NET_DESKTOP_NAMES cwm_atoms[18] #define _NET_WM_DESKTOP cwm_atoms[19] -#define CWM_NO_ATOMS 20 +#define _NET_WORKAREA cwm_atoms[20] +#define CWM_NO_ATOMS 21 #define CWM_NETWM_START 7 extern Atom cwm_atoms[CWM_NO_ATOMS]; diff --git a/screen.c b/screen.c index 02fea44..3610bf7 100644 --- a/screen.c +++ b/screen.c @@ -102,10 +102,23 @@ screen_find_xinerama(struct screen_ctx *sc, int x, int y) void screen_update_geometry(struct screen_ctx *sc, int width, int height) { - long geom[2]; + long geom[2], workareas[CALMWM_NGROUPS][4]; + int i; sc->xmax = geom[0] = width; sc->ymax = geom[1] = height; XChangeProperty(X_Dpy, sc->rootwin, _NET_DESKTOP_GEOMETRY, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)geom , 2); + + /* x, y, width, height. XXX gap */ + for (i = 0; i < CALMWM_NGROUPS; i++) { + workareas[i][0] = 0; + workareas[i][1] = 0; + workareas[i][2] = width; + workareas[i][3] = height; + } + + XChangeProperty(X_Dpy, sc->rootwin, _NET_WORKAREA, + XA_CARDINAL, 32, PropModeReplace, + (unsigned char *)workareas, CALMWM_NGROUPS * 4); } diff --git a/xutil.c b/xutil.c index 6476162..a67aa9a 100644 --- a/xutil.c +++ b/xutil.c @@ -191,6 +191,7 @@ char *atoms[CWM_NO_ATOMS] = { "_NET_SHOWING_DESKTOP", "_NET_DESKTOP_NAMES", "_NET_WM_DESKTOP", + "_NET_WORKAREA", }; void -- cgit 1.4.1