summaryrefslogtreecommitdiff
path: root/gnome-settings-daemon
diff options
context:
space:
mode:
authorJody Goldberg <jody@gnome.org>2002-09-11 13:24:23 +0000
committerJody Goldberg <jody@src.gnome.org>2002-09-11 13:24:23 +0000
commita1f98f2f24bcf3978f3f0cfc26aac1d18e61ba40 (patch)
treeebd8a9fc1b86b2011c5de1f75d0af36ed1c5e982 /gnome-settings-daemon
parent9c3e90995d0897566bc1c6c3184eb6a2ec41eafd (diff)
downloadgnome-control-center-a1f98f2f24bcf3978f3f0cfc26aac1d18e61ba40.tar.gz
Fix conflicting accelerators.
2002-09-11 Jody Goldberg <jody@gnome.org> * gnome-accessibility-keyboard-properties.glade : Fix conflicting accelerators. * accessibility-keyboard.c (setup_dialog) : connect the simple items before the master. (cb_master_enable_toggle) : desensitize the subfeature content if the master switch is disabled.
Diffstat (limited to 'gnome-settings-daemon')
-rw-r--r--gnome-settings-daemon/ChangeLog9
-rw-r--r--gnome-settings-daemon/gnome-settings-accessibility-keyboard.c82
-rw-r--r--gnome-settings-daemon/gnome-settings-wm.c3
3 files changed, 54 insertions, 40 deletions
diff --git a/gnome-settings-daemon/ChangeLog b/gnome-settings-daemon/ChangeLog
index fd8d21e8a..eefbeba78 100644
--- a/gnome-settings-daemon/ChangeLog
+++ b/gnome-settings-daemon/ChangeLog
@@ -1,3 +1,12 @@
+2002-09-11 Jody Goldberg <jody@gnome.org>
+
+ * gnome-settings-accessibility-keyboard.c (set_server_from_gconf) :
+ set the timeout options fully.
+
+2002-09-10 Jody Goldberg <jody@gnome.org>
+
+ * gnome-settings-wm.c (gnome_settings_wm_load) : protect against NULL.
+
2002-09-09 Jody Goldberg <jody@gnome.org>
http://bugzilla.gnome.org/show_bug.cgi?id=91223
diff --git a/gnome-settings-daemon/gnome-settings-accessibility-keyboard.c b/gnome-settings-daemon/gnome-settings-accessibility-keyboard.c
index 16cdcbd7d..7ec47539d 100644
--- a/gnome-settings-daemon/gnome-settings-accessibility-keyboard.c
+++ b/gnome-settings-daemon/gnome-settings-accessibility-keyboard.c
@@ -102,26 +102,16 @@ get_int (GConfClient *client, char const *key)
}
static void
-set_int (GConfClient *client, char const *key, int val)
+set_int (GConfChangeSet *cs, char const *key, int val)
{
- GError *err;
- if (!gconf_client_set_int (client, key, val, &err)) {
- g_warning (err->message);
- g_error_free (err);
- }
+ gconf_change_set_set_int (cs, key, val);
}
-static gboolean
-set_bool (GConfClient *client, gboolean in_gconf, char const *key, int val)
+static void
+set_bool (GConfChangeSet *cs, gboolean in_gconf, char const *key, int val)
{
- GError *err;
- if (!in_gconf && !val)
- return FALSE;
- if (!gconf_client_set_bool (client, key, val ? TRUE : FALSE, &err)) {
- g_warning (err->message);
- g_error_free (err);
- }
- return val;
+ if (in_gconf || val)
+ gconf_change_set_set_bool (cs, key, val ? TRUE : FALSE);
}
static unsigned long
@@ -169,9 +159,19 @@ set_server_from_gconf (GConfEntry *ignored)
XkbAccessXKeysMask | XkbAccessXFeedbackMask);
if (set_ctrl_from_gconf (desc, client, CONFIG_ROOT "/timeout_enable",
- XkbAccessXTimeoutMask, enable_accessX))
+ XkbAccessXTimeoutMask, enable_accessX)) {
desc->ctrls->ax_timeout = get_int (client,
CONFIG_ROOT "/timeout");
+ /* disable only the master flag via the server we will disable
+ * the rest on the rebound without affecting gconf state
+ * don't change the option flags at all.
+ */
+ desc->ctrls->axt_ctrls_mask = \
+ XkbAccessXKeysMask |
+ XkbAccessXFeedbackMask;
+ desc->ctrls->axt_ctrls_values = 0;
+ desc->ctrls->axt_opts_mask = 0;
+ }
desc->ctrls->ax_options = set_clear (enable_accessX &&
gconf_client_get_bool (client, CONFIG_ROOT "/feature_state_change_beep", NULL),
@@ -253,8 +253,8 @@ set_server_from_gconf (GConfEntry *ignored)
*/
g_return_if_fail (!we_are_changing_xkb_state);
- gdk_error_trap_push ();
we_are_changing_xkb_state = TRUE;
+ gdk_error_trap_push ();
XkbSetControls (GDK_DISPLAY (),
XkbSlowKeysMask |
XkbBounceKeysMask |
@@ -267,8 +267,8 @@ set_server_from_gconf (GConfEntry *ignored)
XkbControlsEnabledMask,
desc);
XSync (GDK_DISPLAY (), FALSE);
- we_are_changing_xkb_state = FALSE;
gdk_error_trap_pop ();
+ we_are_changing_xkb_state = FALSE;
}
static void
@@ -276,6 +276,7 @@ set_gconf_from_server (GConfEntry *ignored)
{
gboolean in_gconf;
GConfClient *client = gconf_client_get_default ();
+ GConfChangeSet *cs = gconf_change_set_new ();
XkbDescRec *desc = get_xkb_desc_rec ();
if (!desc) {
@@ -295,7 +296,7 @@ set_gconf_from_server (GConfEntry *ignored)
we_are_changing_xkb_state = TRUE;
/* always toggle this irrespective of the state */
- set_bool (client, TRUE, CONFIG_ROOT "/enable",
+ set_bool (cs, TRUE, CONFIG_ROOT "/enable",
desc->ctrls->enabled_ctrls & (XkbAccessXKeysMask | XkbAccessXFeedbackMask));
/* if master is disabled in gconf do not change gconf state of subordinates
@@ -304,51 +305,54 @@ set_gconf_from_server (GConfEntry *ignored)
*/
in_gconf = gconf_client_get_bool (client, CONFIG_ROOT "/enable", NULL);
- set_bool (client, in_gconf, CONFIG_ROOT "/feature_state_change_beep",
+ set_bool (cs, in_gconf, CONFIG_ROOT "/feature_state_change_beep",
desc->ctrls->ax_options & (XkbAX_FeatureFBMask | XkbAX_SlowWarnFBMask));
- set_bool (client, in_gconf, CONFIG_ROOT "/timeout_enable",
+ set_bool (cs, in_gconf, CONFIG_ROOT "/timeout_enable",
desc->ctrls->enabled_ctrls & XkbAccessXTimeoutMask);
- set_int (client, CONFIG_ROOT "/timeout",
+ set_int (cs, CONFIG_ROOT "/timeout",
desc->ctrls->ax_timeout);
- set_bool (client, in_gconf, CONFIG_ROOT "/bouncekeys_enable",
+ set_bool (cs, in_gconf, CONFIG_ROOT "/bouncekeys_enable",
desc->ctrls->enabled_ctrls & XkbBounceKeysMask);
- set_int (client, CONFIG_ROOT "/bouncekeys_delay",
+ set_int (cs, CONFIG_ROOT "/bouncekeys_delay",
desc->ctrls->debounce_delay);
- set_bool (client, TRUE, CONFIG_ROOT "/bouncekeys_beep_reject",
+ set_bool (cs, TRUE, CONFIG_ROOT "/bouncekeys_beep_reject",
desc->ctrls->ax_options & XkbAX_BKRejectFBMask);
- set_bool (client, in_gconf, CONFIG_ROOT "/mousekeys_enable",
+ set_bool (cs, in_gconf, CONFIG_ROOT "/mousekeys_enable",
desc->ctrls->enabled_ctrls & XkbMouseKeysMask);
- set_int (client, CONFIG_ROOT "/mousekeys_max_speed",
+ set_int (cs, CONFIG_ROOT "/mousekeys_max_speed",
desc->ctrls->mk_max_speed * (1000 / desc->ctrls->mk_interval));
/* NOTE : mk_time_to_max is measured in events not time */
- set_int (client, CONFIG_ROOT "/mousekeys_accel_time",
+ set_int (cs, CONFIG_ROOT "/mousekeys_accel_time",
desc->ctrls->mk_time_to_max * desc->ctrls->mk_interval);
- set_int (client, CONFIG_ROOT "/mousekeys_init_delay",
+ set_int (cs, CONFIG_ROOT "/mousekeys_init_delay",
desc->ctrls->mk_delay);
- set_bool (client, in_gconf, CONFIG_ROOT "/slowkeys_enable",
+ set_bool (cs, in_gconf, CONFIG_ROOT "/slowkeys_enable",
desc->ctrls->enabled_ctrls & XkbSlowKeysMask);
- set_bool (client, TRUE, CONFIG_ROOT "/slowkeys_beep_press",
+ set_bool (cs, TRUE, CONFIG_ROOT "/slowkeys_beep_press",
desc->ctrls->ax_options & XkbAX_SKPressFBMask);
- set_bool (client, TRUE, CONFIG_ROOT "/slowkeys_beep_accept",
+ set_bool (cs, TRUE, CONFIG_ROOT "/slowkeys_beep_accept",
desc->ctrls->ax_options & XkbAX_SKAcceptFBMask);
- set_bool (client, TRUE, CONFIG_ROOT "/slowkeys_beep_reject",
+ set_bool (cs, TRUE, CONFIG_ROOT "/slowkeys_beep_reject",
desc->ctrls->ax_options & XkbAX_SKRejectFBMask);
- set_int (client, CONFIG_ROOT "/slowkeys_delay",
+ set_int (cs, CONFIG_ROOT "/slowkeys_delay",
desc->ctrls->slow_keys_delay);
- set_bool (client, in_gconf, CONFIG_ROOT "/stickykeys_enable",
+ set_bool (cs, in_gconf, CONFIG_ROOT "/stickykeys_enable",
desc->ctrls->enabled_ctrls & XkbStickyKeysMask);
- set_bool (client, TRUE, CONFIG_ROOT "/stickykeys_two_key_off",
+ set_bool (cs, TRUE, CONFIG_ROOT "/stickykeys_two_key_off",
desc->ctrls->ax_options & XkbAX_TwoKeysMask);
- set_bool (client, TRUE, CONFIG_ROOT "/stickykeys_modifier_beep",
+ set_bool (cs, TRUE, CONFIG_ROOT "/stickykeys_modifier_beep",
desc->ctrls->ax_options & XkbAX_StickyKeysFBMask);
- set_bool (client, in_gconf, CONFIG_ROOT "/togglekeys_enable",
+ set_bool (cs, in_gconf, CONFIG_ROOT "/togglekeys_enable",
desc->ctrls->ax_options & XkbAX_IndicatorFBMask);
+ gconf_client_commit_change_set (client, cs, FALSE, NULL);
+ gconf_client_suggest_sync (client, NULL);
+ gconf_change_set_unref (cs);
we_are_changing_xkb_state = FALSE;
}
diff --git a/gnome-settings-daemon/gnome-settings-wm.c b/gnome-settings-daemon/gnome-settings-wm.c
index 8a6570793..7bc6f8a6c 100644
--- a/gnome-settings-daemon/gnome-settings-wm.c
+++ b/gnome-settings-daemon/gnome-settings-wm.c
@@ -108,7 +108,8 @@ gnome_settings_wm_load (GConfClient *client)
set_number_of_workspaces (n >= 1 ? n : 1);
value = gconf_client_get (client, "/desktop/gnome/applications/window_manager/workspace_names", NULL);
- if (gconf_value_get_list_type (value) == GCONF_VALUE_STRING) {
+ if (value != NULL &&
+ gconf_value_get_list_type (value) == GCONF_VALUE_STRING) {
workspace_list = gconf_value_get_list (value);
set_workspace_names (workspace_list);
for (li = workspace_list; li != NULL; li = li->next) {