[Xfce4-commits] <xfdesktop:master> Make sure the background is reloaded on compositing changes.
Nick Schermer
noreply at xfce.org
Wed Jan 19 12:18:02 CET 2011
Updating branch refs/heads/master
to 45b369754f87159fd67ba4d27b925a1c34d53b6b (commit)
from 19dac70c4d99a8ae51a1dad34cf68d5fe269a9dc (commit)
commit 45b369754f87159fd67ba4d27b925a1c34d53b6b
Author: Nick Schermer <nick at xfce.org>
Date: Wed Jan 19 12:14:53 2011 +0100
Make sure the background is reloaded on compositing changes.
When enabling or disabling the compositor in xfwm4, the
background was grey most of the time, so make sure the
background is reloaded when compositing changes by triggering
a screen size changed signal (which does all we want).
src/xfce-desktop.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/src/xfce-desktop.c b/src/xfce-desktop.c
index 0dab00d..f507132 100644
--- a/src/xfce-desktop.c
+++ b/src/xfce-desktop.c
@@ -400,6 +400,14 @@ screen_size_changed_cb(GdkScreen *gscreen, gpointer user_data)
}
static void
+screen_composited_changed_cb(GdkScreen *gscreen,
+ gpointer user_data)
+{
+ /* fake a screen size changed, so the background is properly set */
+ screen_size_changed_cb(gscreen, user_data);
+}
+
+static void
xfce_desktop_monitors_changed(GdkScreen *gscreen,
gpointer user_data)
{
@@ -757,6 +765,8 @@ xfce_desktop_realize(GtkWidget *widget)
g_signal_connect(G_OBJECT(desktop->priv->gscreen), "size-changed",
G_CALLBACK(screen_size_changed_cb), desktop);
+ g_signal_connect(G_OBJECT(desktop->priv->gscreen), "composited-changed",
+ G_CALLBACK(screen_composited_changed_cb), desktop);
gtk_widget_add_events(GTK_WIDGET(desktop), GDK_EXPOSURE_MASK);
@@ -795,6 +805,8 @@ xfce_desktop_unrealize(GtkWidget *widget)
g_signal_handlers_disconnect_by_func(G_OBJECT(desktop->priv->gscreen),
G_CALLBACK(screen_size_changed_cb), desktop);
+ g_signal_handlers_disconnect_by_func(G_OBJECT(desktop->priv->gscreen),
+ G_CALLBACK(screen_composited_changed_cb), desktop);
groot = gdk_screen_get_root_window(desktop->priv->gscreen);
gdk_property_delete(groot, gdk_atom_intern("XFCE_DESKTOP_WINDOW", FALSE));
More information about the Xfce4-commits
mailing list