static void init_gconf (void) { #if defined (HAVE_GCONF) char *s; #if ! GLIB_CHECK_VERSION (2, 36, 0) g_type_init (); #endif gconf_client = gconf_client_get_default (); gconf_client_set_error_handling (gconf_client, GCONF_CLIENT_HANDLE_NONE); gconf_client_add_dir (gconf_client, GCONF_TOOL_BAR_STYLE, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); gconf_client_notify_add (gconf_client, GCONF_TOOL_BAR_STYLE, something_changed_gconfCB, NULL, NULL, NULL); s = gconf_client_get_string (gconf_client, GCONF_TOOL_BAR_STYLE, NULL); if (s) { current_tool_bar_style = map_tool_bar_style (s); g_free (s); } #ifdef HAVE_XFT s = gconf_client_get_string (gconf_client, GCONF_MONO_FONT, NULL); if (s) { dupstring (¤t_mono_font, s); g_free (s); } s = gconf_client_get_string (gconf_client, GCONF_FONT_NAME, NULL); if (s) { dupstring (¤t_font, s); g_free (s); } gconf_client_add_dir (gconf_client, GCONF_MONO_FONT, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); gconf_client_notify_add (gconf_client, GCONF_MONO_FONT, something_changed_gconfCB, NULL, NULL, NULL); gconf_client_add_dir (gconf_client, GCONF_FONT_NAME, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); gconf_client_notify_add (gconf_client, GCONF_FONT_NAME, something_changed_gconfCB, NULL, NULL, NULL); #endif /* HAVE_XFT */ #endif /* HAVE_GCONF */ }
static void read_and_apply_settings (struct x_display_info *dpyinfo, bool send_event_p) { struct xsettings settings; if (!read_settings (dpyinfo, &settings)) return; apply_xft_settings (dpyinfo, &settings); if (settings.seen & SEEN_TB_STYLE) { if (send_event_p) store_tool_bar_style_changed (settings.tb_style, dpyinfo); else current_tool_bar_style = map_tool_bar_style (settings.tb_style); xfree (settings.tb_style); } #ifdef HAVE_XFT if (settings.seen & SEEN_FONT) { if (send_event_p) store_font_name_changed (settings.font); else dupstring (¤t_font, settings.font); xfree (settings.font); } #endif }
static void init_gsettings (void) { #ifdef HAVE_GSETTINGS GVariant *val; const gchar *const *schemas; int schema_found = 0; #if ! GLIB_CHECK_VERSION (2, 36, 0) g_type_init (); #endif schemas = g_settings_list_schemas (); if (schemas == NULL) return; while (! schema_found && *schemas != NULL) schema_found = strcmp (*schemas++, GSETTINGS_SCHEMA) == 0; if (!schema_found) return; gsettings_client = g_settings_new (GSETTINGS_SCHEMA); if (!gsettings_client) return; g_object_ref_sink (G_OBJECT (gsettings_client)); g_signal_connect (G_OBJECT (gsettings_client), "changed", G_CALLBACK (something_changed_gsettingsCB), NULL); val = g_settings_get_value (gsettings_client, GSETTINGS_TOOL_BAR_STYLE); if (val) { g_variant_ref_sink (val); if (g_variant_is_of_type (val, G_VARIANT_TYPE_STRING)) current_tool_bar_style = map_tool_bar_style (g_variant_get_string (val, NULL)); g_variant_unref (val); } #ifdef HAVE_XFT val = g_settings_get_value (gsettings_client, GSETTINGS_MONO_FONT); if (val) { g_variant_ref_sink (val); if (g_variant_is_of_type (val, G_VARIANT_TYPE_STRING)) current_mono_font = xstrdup (g_variant_get_string (val, NULL)); g_variant_unref (val); } val = g_settings_get_value (gsettings_client, GSETTINGS_FONT_NAME); if (val) { g_variant_ref_sink (val); if (g_variant_is_of_type (val, G_VARIANT_TYPE_STRING)) current_font = xstrdup (g_variant_get_string (val, NULL)); g_variant_unref (val); } #endif /* HAVE_XFT */ #endif /* HAVE_GSETTINGS */ }
static void store_tool_bar_style_changed (const char *newstyle, struct x_display_info *dpyinfo) { Lisp_Object style = map_tool_bar_style (newstyle); if (EQ (current_tool_bar_style, style)) return; /* No change. */ current_tool_bar_style = style; if (dpyinfo_valid (dpyinfo)) store_config_changed_event (Qtool_bar_style, XCAR (dpyinfo->name_list_element)); }