ewmh: add support for _NET_DESKTOP_GEOMETRY

Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Julien Danjou 2009-02-13 10:57:42 +01:00
parent 96ea073fc6
commit af95800df1
3 changed files with 22 additions and 1 deletions

View File

@ -6,6 +6,7 @@ _NET_CURRENT_DESKTOP
_NET_DESKTOP_NAMES _NET_DESKTOP_NAMES
_NET_ACTIVE_WINDOW _NET_ACTIVE_WINDOW
_NET_WORKAREA _NET_WORKAREA
_NET_DESKTOP_GEOMETRY
_NET_SUPPORTING_WM_CHECK _NET_SUPPORTING_WM_CHECK
_NET_CLOSE_WINDOW _NET_CLOSE_WINDOW
_NET_WM_NAME _NET_WM_NAME

20
ewmh.c
View File

@ -41,6 +41,23 @@ extern awesome_t globalconf;
#define _NET_WM_STATE_ADD 1 #define _NET_WM_STATE_ADD 1
#define _NET_WM_STATE_TOGGLE 2 #define _NET_WM_STATE_TOGGLE 2
/** Update the desktop geometry.
* \param phys_screen The physical screen id.
*/
static void
ewmh_update_desktop_geometry(int phys_screen)
{
area_t geom = screen_area_get(phys_screen,
NULL,
NULL,
false);
uint32_t sizes[] = { geom.width, geom.height };
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
xutil_screen_get(globalconf.connection, phys_screen)->root,
_NET_DESKTOP_GEOMETRY, CARDINAL, 32, countof(sizes), sizes);
}
void void
ewmh_init(int phys_screen) ewmh_init(int phys_screen)
{ {
@ -57,6 +74,7 @@ ewmh_init(int phys_screen)
_NET_DESKTOP_NAMES, _NET_DESKTOP_NAMES,
_NET_ACTIVE_WINDOW, _NET_ACTIVE_WINDOW,
_NET_WORKAREA, _NET_WORKAREA,
_NET_DESKTOP_GEOMETRY,
_NET_CLOSE_WINDOW, _NET_CLOSE_WINDOW,
_NET_WM_NAME, _NET_WM_NAME,
_NET_WM_STRUT_PARTIAL, _NET_WM_STRUT_PARTIAL,
@ -114,6 +132,8 @@ ewmh_init(int phys_screen)
i = getpid(); i = getpid();
xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE, xcb_change_property(globalconf.connection, XCB_PROP_MODE_REPLACE,
father, _NET_WM_PID, CARDINAL, 32, 1, &i); father, _NET_WM_PID, CARDINAL, 32, 1, &i);
ewmh_update_desktop_geometry(phys_screen);
} }
void void

2
ewmh.h
View File

@ -1,7 +1,7 @@
/* /*
* ewmh.h - EWMH header * ewmh.h - EWMH header
* *
* Copyright © 2007-2008 Julien Danjou <julien@danjou.info> * Copyright © 2007-2009 Julien Danjou <julien@danjou.info>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by