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.
This commit is contained in:
Jody Goldberg 2002-09-11 13:24:23 +00:00 committed by Jody Goldberg
parent 9c3e90995d
commit a1f98f2f24
8 changed files with 109 additions and 98 deletions

View file

@ -1,3 +1,13 @@
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.
2002-09-09 Jody Goldberg <jody@gnome.org>
* gnome-accessibility-keyboard-properties.c (main) : add a warning if

View file

@ -109,7 +109,9 @@ set_sensitive (GladeXML *dialog, char const *name, gboolean state)
static void
cb_feature_toggled (GtkToggleButton *btn, gpointer feature_index)
{
gboolean const state = gtk_toggle_button_get_active (btn);
gboolean const state =
(GTK_WIDGET_STATE (btn) != GTK_STATE_INSENSITIVE) &&
gtk_toggle_button_get_active (btn);
GladeXML *dialog = g_object_get_data (G_OBJECT (btn), "dialog");
int feature, i;
@ -233,26 +235,30 @@ cb_master_enable_toggle (GtkToggleButton *btn, GladeXML *dialog)
{
int i = G_N_ELEMENTS (features);
gboolean flag = gtk_toggle_button_get_active (btn);
GtkWidget *w;
while (i-- > 0)
gtk_widget_set_sensitive (WID (features [i].checkbox), flag);
while (i-- > 0) {
w = WID (features [i].checkbox);
gtk_widget_set_sensitive (w, flag);
cb_feature_toggled (GTK_TOGGLE_BUTTON (w), GINT_TO_POINTER (i));
}
}
static void
setup_dialog (GladeXML *dialog, GConfChangeSet *changeset)
{
GtkWidget *master_enable = WID ("master_enable");
setup_images (dialog);
setup_ranges (dialog, changeset);
setup_toggles (dialog, changeset);
setup_simple_toggles (dialog, changeset);
g_signal_connect (master_enable,
"toggled",
G_CALLBACK (cb_master_enable_toggle), dialog);
gconf_peditor_new_boolean (changeset,
CONFIG_ROOT "/enable",
GTK_WIDGET (master_enable), NULL);
setup_images (dialog);
setup_ranges (dialog, changeset);
setup_toggles (dialog, changeset);
setup_simple_toggles (dialog, changeset);
}
/*******************************************************************************/

View file

@ -256,7 +256,7 @@
<widget class="GtkButton" id="launch_keyboard_capplet">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Repeat Key Preferences</property>
<property name="label" translatable="yes">Repeat Key Pre_ferences</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
</widget>
@ -321,7 +321,7 @@
<widget class="GtkCheckButton" id="stickykeys_modifier_beep">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">B_eep when modifier is pressed</property>
<property name="label" translatable="yes">_Beep when modifier is pressed</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="active">True</property>
@ -505,9 +505,9 @@ two keys pressed simultaneously</property>
<property name="wrap">False</property>
<property name="adjustment">1 0 100 1 10 10</property>
<accessibility>
<atkrelation target="slowkeys_delay_slide" type="controlled-by"/>
<atkrelation target="slowkeys_label" type="labelled-by"/>
<atkrelation target="slowkeys_title" type="labelled-by"/>
<atkrelation target="slowkeys_label" type="labelled-by"/>
<atkrelation target="slowkeys_delay_slide" type="controlled-by"/>
</accessibility>
</widget>
<packing>
@ -721,7 +721,7 @@ two keys pressed simultaneously</property>
<child>
<widget class="GtkLabel" id="bouncekeys_title">
<property name="visible">True</property>
<property name="label" translatable="yes">_Ignore keypresses within :</property>
<property name="label" translatable="yes">I_gnore keypresses within :</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -785,9 +785,9 @@ two keys pressed simultaneously</property>
<property name="wrap">False</property>
<property name="adjustment">1 0 100 1 10 10</property>
<accessibility>
<atkrelation target="bouncekeys_delay_slide" type="controlled-by"/>
<atkrelation target="bouncekeys_label" type="labelled-by"/>
<atkrelation target="bouncekeys_title" type="labelled-by"/>
<atkrelation target="bouncekeys_label" type="labelled-by"/>
<atkrelation target="bouncekeys_delay_slide" type="controlled-by"/>
</accessibility>
</widget>
<packing>
@ -1018,9 +1018,9 @@ two keys pressed simultaneously</property>
<property name="wrap">False</property>
<property name="adjustment">1 0 100 1 10 10</property>
<accessibility>
<atkrelation target="mousekeys_max_speed_label" type="labelled-by"/>
<atkrelation target="mousekeys_max_speed_title" type="labelled-by"/>
<atkrelation target="mousekeys_accel_time_slide" type="controlled-by"/>
<atkrelation target="mousekeys_max_speed_title" type="labelled-by"/>
<atkrelation target="mousekeys_max_speed_label" type="labelled-by"/>
</accessibility>
</widget>
<packing>
@ -1059,7 +1059,7 @@ two keys pressed simultaneously</property>
<child>
<widget class="GtkLabel" id="mousekeys_accel_time_title">
<property name="visible">True</property>
<property name="label" translatable="yes">Time to _accelerate to max speed :</property>
<property name="label" translatable="yes">Time to acce_lerate to max speed :</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -1096,9 +1096,9 @@ two keys pressed simultaneously</property>
<property name="wrap">False</property>
<property name="adjustment">1 0 100 1 10 10</property>
<accessibility>
<atkrelation target="mousekeys_init_delay_label" type="labelled-by"/>
<atkrelation target="mousekeys_init_delay_title" type="labelled-by"/>
<atkrelation target="mousekeys_init_delay_slide" type="controlled-by"/>
<atkrelation target="mousekeys_init_delay_title" type="labelled-by"/>
<atkrelation target="mousekeys_init_delay_label" type="labelled-by"/>
</accessibility>
</widget>
<packing>
@ -1122,9 +1122,9 @@ two keys pressed simultaneously</property>
<property name="wrap">False</property>
<property name="adjustment">1 0 100 1 10 10</property>
<accessibility>
<atkrelation target="mousekeys_accel_time_label" type="labelled-by"/>
<atkrelation target="mousekeys_accel_time_title" type="labelled-by"/>
<atkrelation target="mousekeys_max_speed_slide" type="controlled-by"/>
<atkrelation target="mousekeys_accel_time_title" type="labelled-by"/>
<atkrelation target="mousekeys_accel_time_label" type="labelled-by"/>
</accessibility>
</widget>
<packing>

View file

@ -1,3 +1,8 @@
2002-09-10 Jody Goldberg <jody@gnome.org>
http://bugzilla.gnome.org/show_bug.cgi?id=76419
* gnome-ui-properties.glade : tweak layout slightly
2002-08-23 Jody Goldberg <jody@gnome.org>
* gnome-ui-properties.glade : Priority text was a bonobo-ism.

View file

@ -347,23 +347,11 @@
<property name="visible">True</property>
<child>
<widget class="GtkImageMenuItem" id="File Menu">
<widget class="GtkMenuItem" id="File Menu">
<property name="visible">True</property>
<property name="label" translatable="yes">_Menu</property>
<property name="label" translatable="yes">_File</property>
<property name="use_underline">True</property>
<child internal-child="image">
<widget class="GtkImage" id="image35">
<property name="visible">True</property>
<property name="stock">gtk-help</property>
<property name="icon_size">1</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
<child>
<widget class="GtkMenu" id="File Menu_menu">
@ -375,7 +363,7 @@
<signal name="activate" handler="on_menu_item_1_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image36">
<widget class="GtkImage" id="image59">
<property name="visible">True</property>
<property name="stock">gtk-new</property>
<property name="icon_size">1</property>
@ -396,7 +384,7 @@
<signal name="activate" handler="on_menu_item_2_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image37">
<widget class="GtkImage" id="image60">
<property name="visible">True</property>
<property name="stock">gtk-open</property>
<property name="icon_size">1</property>
@ -416,7 +404,7 @@
<property name="use_underline">True</property>
<child internal-child="image">
<widget class="GtkImage" id="image38">
<widget class="GtkImage" id="image61">
<property name="visible">True</property>
<property name="stock">gtk-save</property>
<property name="icon_size">1</property>
@ -442,7 +430,7 @@
<property name="use_underline">True</property>
<child internal-child="image">
<widget class="GtkImage" id="image39">
<widget class="GtkImage" id="image62">
<property name="visible">True</property>
<property name="stock">gtk-print</property>
<property name="icon_size">1</property>
@ -468,7 +456,7 @@
<property name="use_underline">True</property>
<child internal-child="image">
<widget class="GtkImage" id="image40">
<widget class="GtkImage" id="image63">
<property name="visible">True</property>
<property name="stock">gtk-quit</property>
<property name="icon_size">1</property>
@ -486,24 +474,12 @@
</child>
<child>
<widget class="GtkImageMenuItem" id="edit1">
<widget class="GtkMenuItem" id="edit1">
<property name="visible">True</property>
<property name="label" translatable="yes">Edit Menu</property>
<property name="label" translatable="yes">_Edit</property>
<property name="use_underline">True</property>
<signal name="activate" handler="on_edit1_activate" last_modification_time="Thu, 18 Jul 2002 03:49:33 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image41">
<property name="visible">True</property>
<property name="stock">gtk-dialog-info</property>
<property name="icon_size">1</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
<child>
<widget class="GtkMenu" id="edit1_menu">
@ -515,7 +491,7 @@
<signal name="activate" handler="on_cut1_activate" last_modification_time="Thu, 18 Jul 2002 03:49:33 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image42">
<widget class="GtkImage" id="image64">
<property name="visible">True</property>
<property name="stock">gtk-cut</property>
<property name="icon_size">1</property>
@ -536,7 +512,7 @@
<signal name="activate" handler="on_copy1_activate" last_modification_time="Thu, 18 Jul 2002 03:49:33 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image43">
<widget class="GtkImage" id="image65">
<property name="visible">True</property>
<property name="stock">gtk-copy</property>
<property name="icon_size">1</property>
@ -557,7 +533,7 @@
<signal name="activate" handler="on_paste1_activate" last_modification_time="Thu, 18 Jul 2002 03:49:33 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image44">
<widget class="GtkImage" id="image66">
<property name="visible">True</property>
<property name="stock">gtk-paste</property>
<property name="icon_size">1</property>

View file

@ -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

View file

@ -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;
}

View file

@ -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) {