diff options
Diffstat (limited to 'src/compositor/meta-compositor-xrender.c')
-rw-r--r-- | src/compositor/meta-compositor-xrender.c | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/src/compositor/meta-compositor-xrender.c b/src/compositor/meta-compositor-xrender.c index e2daec47..7e3766b0 100644 --- a/src/compositor/meta-compositor-xrender.c +++ b/src/compositor/meta-compositor-xrender.c @@ -2169,25 +2169,22 @@ process_property_notify (MetaCompositorXRender *xrender, if (event->atom == display->atom__XROOTPMAP_ID || event->atom == display->atom__XSETROOT_ID) { - screen = meta_display_screen_for_root (display, event->window); - if (screen) - { - Window xroot = meta_screen_get_xroot (screen); - - if (xrender->root_tile) - { - XClearArea (xdisplay, xroot, 0, 0, 0, 0, TRUE); - XRenderFreePicture (xdisplay, xrender->root_tile); - xrender->root_tile = None; + screen = meta_display_get_screen (display); - /* Damage the whole screen as we may need to redraw the - background ourselves */ - damage_screen (xrender); + if (event->window == meta_screen_get_xroot (screen) && + xrender->root_tile != None) + { + XClearArea (xdisplay, event->window, 0, 0, 0, 0, TRUE); + XRenderFreePicture (xdisplay, xrender->root_tile); + xrender->root_tile = None; - add_repair (xrender); + /* Damage the whole screen as we may need to redraw the + * background ourselves + */ + damage_screen (xrender); - return; - } + add_repair (xrender); + return; } } |