From 3b1d45c537bcb9a76c80b1aec55f8af96d9b1da1 Mon Sep 17 00:00:00 2001 From: Denis Washington Date: Tue, 12 Jun 2007 17:05:17 +0000 Subject: [PATCH] Stop the GdkDisplay mess and let gnome-appearance-properties handle gtk+ 2007-06-09 Denis Washington * theme-thumbnail.c: (generate_gtk_theme_thumbnail): Stop the GdkDisplay mess and let gnome-appearance-properties handle gtk+ theme changes manually instead. svn path=/trunk/; revision=7720 --- capplets/common/ChangeLog | 6 ++++++ capplets/common/theme-thumbnail.c | 21 ++++++--------------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/capplets/common/ChangeLog b/capplets/common/ChangeLog index dc50ca361..e85649531 100644 --- a/capplets/common/ChangeLog +++ b/capplets/common/ChangeLog @@ -1,3 +1,9 @@ +2007-06-09 Denis Washington + + * theme-thumbnail.c: (generate_gtk_theme_thumbnail): + Stop the GdkDisplay mess and let gnome-appearance-properties handle + gtk+ theme changes manually instead. + 2007-06-10 Jens Granseuer * gtkrc-utils.c: (gtkrc_get_details), (gtkrc_get_color_scheme): diff --git a/capplets/common/theme-thumbnail.c b/capplets/common/theme-thumbnail.c index 344e6dbd8..4df261bdb 100644 --- a/capplets/common/theme-thumbnail.c +++ b/capplets/common/theme-thumbnail.c @@ -671,10 +671,8 @@ theme_thumbnail_factory_init (int argc, char *argv[]) GdkPixbuf * generate_gtk_theme_thumbnail (GnomeThemeInfo *info) { - GdkDisplayManager *manager; - GdkDisplay *display, *default_display; - GdkScreen *screen; GObject *settings; + gchar *current_theme = NULL; GtkWidget *window, *vbox, *box, *stock_button, *checkbox, *radio; GtkRequisition requisition; GtkAllocation allocation; @@ -683,16 +681,10 @@ generate_gtk_theme_thumbnail (GnomeThemeInfo *info) GdkPixbuf *pixbuf, *ret; gint width, height; - display = gdk_display_open (gdk_get_display_arg_name ()); - screen = gdk_display_get_default_screen (display); - - settings = G_OBJECT (gtk_settings_get_for_screen (screen)); + settings = G_OBJECT (gtk_settings_get_default ()); + g_object_get (settings, "gtk-theme-name", ¤t_theme, NULL); g_object_set (settings, "gtk-theme-name", info->name, NULL); - manager = gdk_display_manager_get (); - default_display = gdk_display_manager_get_default_display (manager); - gdk_display_manager_set_default_display (manager, display); - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); vbox = gtk_vbox_new (FALSE, 0); @@ -747,8 +739,6 @@ generate_gtk_theme_thumbnail (GnomeThemeInfo *info) fake_expose_widget (checkbox, pixmap, NULL); fake_expose_widget (radio, pixmap, NULL); - gdk_display_flush (display); - gtk_widget_destroy (window); pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, width, height); gdk_pixbuf_get_from_drawable (pixbuf, pixmap, NULL, 0, 0, 0, 0, width, height); @@ -759,8 +749,9 @@ generate_gtk_theme_thumbnail (GnomeThemeInfo *info) GDK_INTERP_BILINEAR); g_object_unref (pixbuf); - gdk_display_manager_set_default_display (manager, default_display); - gdk_display_close (display); + gtk_widget_destroy (window); + g_object_set (settings, "gtk-theme-name", current_theme, NULL); + g_free (current_theme); return ret; }