summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary Wong <gtw@gnu.org>2009-09-06 20:50:30 -0600
committerGary Wong <gtw@gnu.org>2009-09-06 20:50:30 -0600
commite17bff21252f44383198037a68c902d708a83569 (patch)
tree1dbb68ce8936604508ca82de1a7fe9bccff2d6e3
parentaf2604695a882e308eb454900dd8b6115d3a3be3 (diff)
Remove EWMH root properties when shutting down.
-rw-r--r--ChangeLog1
-rw-r--r--gwm.c20
2 files changed, 19 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 1d09a62..84d91a1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,7 @@
* gwm.c (setup_display): Add various EWMH properties to the root
and fake windows.
+ (shutdown_display): Remove EWMH root properties.
2009-09-06 Gary Wong <gtw@gnu.org>
diff --git a/gwm.c b/gwm.c
index 9a62bb7..da7a18f 100644
--- a/gwm.c
+++ b/gwm.c
@@ -2007,7 +2007,7 @@ static void setup_display( void ) {
values[ 1 ] = atoms[ ATOM__NET_WM_NAME ];
xcb_change_property( c, XCB_PROP_MODE_REPLACE, screens[ i ]->root,
atoms[ ATOM__NET_SUPPORTED ], CARDINAL, 32,
- w, values );
+ 2, values );
values[ 0 ] = fake_window->w;
xcb_change_property( c, XCB_PROP_MODE_REPLACE, screens[ i ]->root,
@@ -2386,10 +2386,26 @@ static void shutdown_display( void ) {
XCB_CURRENT_TIME );
n = 0;
- for( i = 0; i < num_screens; i++ )
+ for( i = 0; i < num_screens; i++ ) {
xcb_change_window_attributes( c, screens[ i ]->root,
XCB_CW_EVENT_MASK, &n );
+ xcb_delete_property( c, screens[ i ]->root,
+ atoms[ ATOM__NET_CURRENT_DESKTOP ] );
+ xcb_delete_property( c, screens[ i ]->root,
+ atoms[ ATOM__NET_DESKTOP_GEOMETRY ] );
+ xcb_delete_property( c, screens[ i ]->root,
+ atoms[ ATOM__NET_DESKTOP_VIEWPORT ] );
+ xcb_delete_property( c, screens[ i ]->root,
+ atoms[ ATOM__NET_NUMBER_OF_DESKTOPS ] );
+ xcb_delete_property( c, screens[ i ]->root,
+ atoms[ ATOM__NET_SUPPORTED ] );
+ xcb_delete_property( c, screens[ i ]->root,
+ atoms[ ATOM__NET_SUPPORTING_WM_CHECK ] );
+ xcb_delete_property( c, screens[ i ]->root,
+ atoms[ ATOM__NET_WORKAREA ] );
+ }
+
#if USE_RENDER
if( have_extension[ EXT_RENDER ] )
decorate_render_done();