summaryrefslogtreecommitdiff
path: root/capplets/appearance
diff options
context:
space:
mode:
Diffstat (limited to 'capplets/appearance')
-rw-r--r--capplets/appearance/appearance-main.c2
-rw-r--r--capplets/appearance/appearance-support.c32
2 files changed, 27 insertions, 7 deletions
diff --git a/capplets/appearance/appearance-main.c b/capplets/appearance/appearance-main.c
index 65e703ad..b16b76fe 100644
--- a/capplets/appearance/appearance-main.c
+++ b/capplets/appearance/appearance-main.c
@@ -38,7 +38,9 @@ init_appearance_data (int *argc, char ***argv, GOptionContext *context)
GtkBuilder *ui;
GError *err = NULL;
+#if !GLIB_CHECK_VERSION (2, 32, 0)
g_thread_init (NULL);
+#endif
gdk_threads_init ();
gdk_threads_enter ();
theme_thumbnail_factory_init (*argc, *argv);
diff --git a/capplets/appearance/appearance-support.c b/capplets/appearance/appearance-support.c
index 42b906cc..25cc003c 100644
--- a/capplets/appearance/appearance-support.c
+++ b/capplets/appearance/appearance-support.c
@@ -57,21 +57,34 @@ metacity_is_running()
}
static void
-metacity_theme_apply(const gchar *theme)
+metacity_theme_apply(const gchar *theme, const gchar *font)
{
/* set theme, we use gconf and gsettings binaries to avoid schemas and versions issues */
if (is_program_in_path ("gconftool-2"))
{
- gchar *gconf_cmd = g_strdup_printf("gconftool-2 --set --type string /apps/metacity/general/theme '%s'", theme);
+ gchar *gconf_cmd = NULL;
+
+ gconf_cmd = g_strdup_printf("gconftool-2 --set --type string /apps/metacity/general/theme '%s'", theme);
+ g_spawn_command_line_async (gconf_cmd, NULL);
+ g_free (gconf_cmd);
+
+ gconf_cmd = g_strdup_printf("gconftool-2 --set --type string /apps/metacity/general/titlebar_font '%s'", font);
g_spawn_command_line_async (gconf_cmd, NULL);
g_free (gconf_cmd);
}
if (is_program_in_path ("gsettings"))
{
- gchar *gsettings_cmd = g_strdup_printf("gsettings set org.gnome.desktop.wm.preferences theme '%s'", theme);
+ gchar *gsettings_cmd = NULL;
+
+ gsettings_cmd = g_strdup_printf("gsettings set org.gnome.desktop.wm.preferences theme '%s'", theme);
g_spawn_command_line_async (gsettings_cmd, NULL);
g_free (gsettings_cmd);
+
+ gsettings_cmd = g_strdup_printf("gsettings set org.gnome.desktop.wm.preferences titlebar-font '%s'", font);
+ g_spawn_command_line_async (gsettings_cmd, NULL);
+ g_free (gsettings_cmd);
+
}
}
@@ -79,11 +92,14 @@ static void
marco_theme_changed(GSettings *settings, gchar *key, AppearanceData* data)
{
gchar *theme = NULL;
+ gchar *font = NULL;
if (metacity_is_running ())
{
- theme = g_settings_get_string (settings, key);
- metacity_theme_apply (theme);
+ theme = g_settings_get_string (settings, MARCO_THEME_KEY);
+ font = g_settings_get_string (settings, WINDOW_TITLE_FONT_KEY);
+ metacity_theme_apply (theme, font);
g_free (theme);
+ g_free (font);
}
}
@@ -92,12 +108,14 @@ support_init(AppearanceData* data)
{
/* needed for wm_common_get_current_window_manager() */
wm_common_update_window ();
- /* GSettings signal */
+ /* GSettings signals */
g_signal_connect (data->marco_settings, "changed::" MARCO_THEME_KEY,
G_CALLBACK (marco_theme_changed), data);
+ g_signal_connect (data->marco_settings, "changed::" WINDOW_TITLE_FONT_KEY,
+ G_CALLBACK (marco_theme_changed), data);
/* apply theme at start */
if (metacity_is_running ())
- marco_theme_changed (data->marco_settings, MARCO_THEME_KEY, data);
+ marco_theme_changed (data->marco_settings, NULL, data);
}
void