diff options
author | Ray Strode <[email protected]> | 2011-02-07 13:56:41 -0500 |
---|---|---|
committer | Alexei Sorokin <[email protected]> | 2017-02-02 19:12:44 +0300 |
commit | c164299a238b9f78c69a408785dd55c68b588606 (patch) | |
tree | 11069ba548f624817da7cde24735a7c536655703 | |
parent | 9f2d24864534dd0f126ba4a18c02730a5a93e91d (diff) | |
download | mate-desktop-c164299a238b9f78c69a408785dd55c68b588606.tar.bz2 mate-desktop-c164299a238b9f78c69a408785dd55c68b588606.tar.xz |
mate-bg: force property update when doing new crossfade frame
marco needs to get notified about animation updates.
This commit frobs the property to wake marco up.
https://bugzilla.gnome.org/show_bug.cgi?id=641526
-rw-r--r-- | libmate-desktop/mate-bg-crossfade.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libmate-desktop/mate-bg-crossfade.c b/libmate-desktop/mate-bg-crossfade.c index 484f252..970b567 100644 --- a/libmate-desktop/mate-bg-crossfade.c +++ b/libmate-desktop/mate-bg-crossfade.c @@ -407,6 +407,20 @@ animations_are_disabled (MateBGCrossfade *fade) } static void +send_root_property_change_notification (MateBGCrossfade *fade) +{ + long zero_length_pixmap = 0; + + /* We do a zero length append to force a change notification, + * without changing the value */ + XChangeProperty (GDK_WINDOW_XDISPLAY (fade->priv->window), + GDK_WINDOW_XID (fade->priv->window), + gdk_x11_get_xatom_by_name ("_XROOTPMAP_ID"), + XA_PIXMAP, 32, PropModeAppend, + (unsigned char *) &zero_length_pixmap, 0); +} + +static void draw_background (MateBGCrossfade *fade) { if (gdk_window_get_window_type (fade->priv->window) == GDK_WINDOW_ROOT) { @@ -416,6 +430,7 @@ draw_background (MateBGCrossfade *fade) gdk_window_get_width (fade->priv->window), gdk_window_get_height (fade->priv->window), False); + send_root_property_change_notification (fade); gdk_flush (); } else { gdk_window_invalidate_rect (fade->priv->window, NULL, FALSE); |