[gnome-settings-daemon] Introduce gconf key that allows hiding the indicator
- From: Sergey V. Udaltsov <svu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon] Introduce gconf key that allows hiding the indicator
- Date: Sat, 3 Apr 2010 22:31:01 +0000 (UTC)
commit d5fc6ca9440417a0fd66a30733b9d73470edb45d
Author: Sergey Udaltsov <sergey udaltsov gmail com>
Date: Sat Apr 3 15:29:19 2010 -0700
Introduce gconf key that allows hiding the indicator
https://bugzilla.gnome.org/show_bug.cgi?id=612240
plugins/keyboard/gsd-keyboard-xkb.c | 30 +++++++++++++++++++++++-------
1 files changed, 23 insertions(+), 7 deletions(-)
---
diff --git a/plugins/keyboard/gsd-keyboard-xkb.c b/plugins/keyboard/gsd-keyboard-xkb.c
index 753af39..16d2e64 100644
--- a/plugins/keyboard/gsd-keyboard-xkb.c
+++ b/plugins/keyboard/gsd-keyboard-xkb.c
@@ -66,6 +66,9 @@ static void *pa_callback_user_data = NULL;
static const char KNOWN_FILES_KEY[] =
"/desktop/gnome/peripherals/keyboard/general/known_file_list";
+static const char DISABLE_INDICATOR_KEY[] =
+ "/desktop/gnome/peripherals/keyboard/general/disable_indicator";
+
static const char *gdm_keyboard_layout = NULL;
static GtkStatusIcon *icon = NULL;
@@ -447,6 +450,16 @@ show_hide_icon ()
{
if (g_slist_length (current_kbd_config.layouts_variants) > 1) {
if (icon == NULL) {
+ GConfClient *conf_client =
+ gconf_client_get_default ();
+ gboolean disable =
+ gconf_client_get_bool (conf_client,
+ DISABLE_INDICATOR_KEY,
+ NULL);
+ g_object_unref (conf_client);
+ if (disable)
+ return;
+
xkl_debug (150, "Creating new icon\n");
icon = gkbd_status_new ();
g_signal_connect (icon, "popup-menu",
@@ -541,8 +554,8 @@ filter_xkb_config (void)
current_kbd_config.layouts_variants
=
g_slist_delete_link
- (current_kbd_config.layouts_variants,
- filtered);
+ (current_kbd_config.
+ layouts_variants, filtered);
any_change = TRUE;
continue;
}
@@ -590,10 +603,12 @@ apply_xkb_settings (void)
GSList *found_node;
int max_groups;
- max_groups = MAX (xkl_engine_get_max_num_groups (xkl_engine), 1);
- layouts = gconf_client_get_list (conf_client,
- GKBD_KEYBOARD_CONFIG_KEY_LAYOUTS,
- GCONF_VALUE_STRING, NULL);
+ max_groups =
+ MAX (xkl_engine_get_max_num_groups (xkl_engine), 1);
+ layouts =
+ gconf_client_get_list (conf_client,
+ GKBD_KEYBOARD_CONFIG_KEY_LAYOUTS,
+ GCONF_VALUE_STRING, NULL);
/* Use system layouts as a default if we do not have
* user configuration */
@@ -601,7 +616,8 @@ apply_xkb_settings (void)
GSList *i;
int len;
- for (i = initial_sys_kbd_config.layouts_variants; i; i = g_slist_next (i)) {
+ for (i = initial_sys_kbd_config.layouts_variants;
+ i; i = g_slist_next (i)) {
s = g_strdup (i->data);
/* chop off empty variants to avoid duplicates */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]