summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--eel/eel-background.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/eel/eel-background.c b/eel/eel-background.c
index ecfe3042..fefc55cc 100644
--- a/eel/eel-background.c
+++ b/eel/eel-background.c
@@ -903,10 +903,35 @@ widget_style_set_cb (GtkWidget *widget, GtkStyle *previous_style, gpointer data)
}
}
+#define VERBOSE
+
static void
screen_size_changed (GdkScreen *screen, EelBackground *background)
{
- g_signal_emit (background, signals[APPEARANCE_CHANGED], 0);
+ GdkWindow *window;
+ int w, h;
+
+ window = gdk_screen_get_root_window(screen);
+
+ /* Find the monitor where our desktop window is, then get its geometry */
+// GdkRectangle rect;
+// gint monitor;
+// monitor = gdk_screen_get_monitor_at_window (screen, window);
+// gdk_screen_get_monitor_geometry (screen, monitor, &rect);
+// g_message ("Resized GdkWindow = %dx%d\n", rect.width, rect.height);
+
+ drawable_get_adjusted_size (background, window, &w, &h);
+ if (w != background->details->background_entire_width ||
+ h != background->details->background_entire_height)
+ {
+#ifdef VERBOSE
+ g_message ("size changed: %dx%d -> %dx%d. Emitting changed signal.\n",
+ background->details->background_entire_width,
+ background->details->background_entire_height,
+ w, h);
+#endif
+ g_signal_emit (background, signals[APPEARANCE_CHANGED], 0);
+ }
}
static void