summaryrefslogtreecommitdiff
path: root/capplets/appearance/appearance-themes.c
diff options
context:
space:
mode:
authorDenis Washington <denisw@svn.gnome.org>2007-07-29 15:37:22 +0000
committerDenis Washington <denisw@src.gnome.org>2007-07-29 15:37:22 +0000
commitad496d45ae5f1269df9c4b5b3cc1f2f00a5a6542 (patch)
treec0f95800f189bd79954637ee22aa01a02b72d909 /capplets/appearance/appearance-themes.c
parent2f8351bca7ca3af14c072b316e322f648e4f003f (diff)
downloadgnome-control-center-ad496d45ae5f1269df9c4b5b3cc1f2f00a5a6542.tar.gz
_Really_ only show background/font suggestions if they haven't already
2007-07-29 Denis Washington <denisw@svn.gnome.org> * appearance-themes.c: (theme_message_area_response_cb), (theme_message_area_update), (theme_selection_changed_cb), (background_or_font_changed), (themes_init): _Really_ only show background/font suggestions if they haven't already been applied. svn path=/trunk/; revision=7923
Diffstat (limited to 'capplets/appearance/appearance-themes.c')
-rw-r--r--capplets/appearance/appearance-themes.c36
1 files changed, 27 insertions, 9 deletions
diff --git a/capplets/appearance/appearance-themes.c b/capplets/appearance/appearance-themes.c
index f4c5b4ca1..f95724717 100644
--- a/capplets/appearance/appearance-themes.c
+++ b/capplets/appearance/appearance-themes.c
@@ -52,9 +52,6 @@ static const GtkTargetEntry drop_types[] =
{"_NETSCAPE_URL", 0, TARGET_NS_URL}
};
-static void theme_message_area_update (AppearanceData *data);
-
-
static void
theme_thumbnail_done_cb (GdkPixbuf *pixbuf, gchar *theme_name, AppearanceData *data)
{
@@ -354,8 +351,6 @@ theme_message_area_response_cb (GtkWidget *w,
theme->monospace_font, NULL);
break;
}
-
- theme_message_area_update (data);
}
static void
@@ -410,7 +405,6 @@ theme_message_area_update (AppearanceData *data)
return;
data->theme_message_area = gedit_message_area_new ();
- g_object_ref (data->theme_message_area);
gtk_widget_set_no_show_all (data->theme_message_area, TRUE);
g_signal_connect (G_OBJECT (data->theme_message_area), "response", (GCallback) theme_message_area_response_cb, data);
@@ -492,7 +486,7 @@ theme_selection_changed_cb (GtkWidget *icon_view, AppearanceData *data)
if (theme) {
gnome_meta_theme_set (theme);
- theme_message_area_update (data);
+ theme_message_area_update (data);
}
g_free (name);
@@ -699,6 +693,15 @@ appearance_window_drag_data_received_cb (GtkWidget *widget,
g_free (filename);
}
+static void
+background_or_font_changed (GConfEngine *conf,
+ guint cnxn_id,
+ GConfEntry *entry,
+ AppearanceData *data)
+{
+ theme_message_area_update (data);
+}
+
void
themes_init (AppearanceData *data)
{
@@ -712,6 +715,23 @@ themes_init (AppearanceData *data)
gnome_theme_init (NULL);
gnome_wm_manager_init ();
+ gconf_client_notify_add (data->client,
+ BACKGROUND_KEY,
+ (GConfClientNotifyFunc) background_or_font_changed,
+ data, NULL, NULL);
+ gconf_client_notify_add (data->client,
+ APPLICATION_FONT_KEY,
+ (GConfClientNotifyFunc) background_or_font_changed,
+ data, NULL, NULL);
+ gconf_client_notify_add (data->client,
+ DESKTOP_FONT_KEY,
+ (GConfClientNotifyFunc) background_or_font_changed,
+ data, NULL, NULL);
+ gconf_client_notify_add (data->client,
+ MONOSPACE_FONT_KEY,
+ (GConfClientNotifyFunc) background_or_font_changed,
+ data, NULL, NULL);
+
data->theme_save_dialog = NULL;
data->theme_message_area = NULL;
data->theme_custom = gnome_theme_meta_info_new ();
@@ -815,6 +835,4 @@ themes_shutdown (AppearanceData *data)
g_object_unref (data->theme_icon);
if (data->theme_save_dialog)
gtk_widget_destroy (data->theme_save_dialog);
- if (data->theme_message_area)
- gtk_widget_destroy (data->theme_message_area);
}