gnome-terminal r2530 - trunk/src
- From: chpe svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-terminal r2530 - trunk/src
- Date: Mon, 31 Mar 2008 22:41:57 +0100 (BST)
Author: chpe
Date: Mon Mar 31 22:41:56 2008
New Revision: 2530
URL: http://svn.gnome.org/viewvc/gnome-terminal?rev=2530&view=rev
Log:
Fix the mnemonics checkbox toggling also toggling the checkbox below it too. Bug #168066.
Modified:
trunk/src/terminal-accels.c
Modified: trunk/src/terminal-accels.c
==============================================================================
--- trunk/src/terminal-accels.c (original)
+++ trunk/src/terminal-accels.c Mon Mar 31 22:41:56 2008
@@ -229,15 +229,15 @@
static void update_menu_accel_state (void);
static GtkAccelGroup * /* accel_group_i_need_because_gtk_accel_api_sucks */ hack_group = NULL;
-static GSList *living_treeviews = NULL;
-static GSList *living_mnemonics_checkbuttons = NULL;
-static GSList *living_menu_accel_checkbuttons = NULL;
static gboolean using_mnemonics = TRUE;
static gboolean using_menu_accels = TRUE;
/* never set gconf keys in response to receiving a gconf notify. */
static int inside_gconf_notify = 0;
static char *saved_menu_accel = NULL;
static GtkWidget *edit_keys_dialog = NULL;
+static GtkWidget *edit_keys_dialog_treeview = NULL;
+static GtkWidget *edit_keys_dialog_mnemonics_checkbutton = NULL;
+static GtkWidget *edit_keys_dialog_menu_accel_checkbutton = NULL;
void
terminal_accels_init (void)
@@ -458,8 +458,6 @@
key_entry = &(all_entries[i].key_entry[j]);
if (strcmp (key_entry->gconf_key, gconf_entry_get_key (entry)) == 0)
{
- GSList *tmp;
-
/* found it */
key_entry->gconf_keyval = keyval;
key_entry->gconf_mask = mask;
@@ -475,13 +473,11 @@
inside_gconf_notify -= 1;
/* Notify tree views to repaint with new values */
- tmp = living_treeviews;
- while (tmp != NULL)
+ if (edit_keys_dialog_treeview)
{
- gtk_tree_model_foreach (gtk_tree_view_get_model (GTK_TREE_VIEW (tmp->data)),
+ gtk_tree_model_foreach (gtk_tree_view_get_model (GTK_TREE_VIEW (edit_keys_dialog_treeview)),
update_model_foreach,
key_entry);
- tmp = tmp->next;
}
break;
@@ -561,17 +557,13 @@
{
if (using_mnemonics != gconf_value_get_bool (val))
{
- GSList *tmp;
-
using_mnemonics = !using_mnemonics;
/* Reset the checkbuttons */
- tmp = living_mnemonics_checkbuttons;
- while (tmp != NULL)
+ if (edit_keys_dialog_mnemonics_checkbutton)
{
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tmp->data),
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (edit_keys_dialog_mnemonics_checkbutton),
!using_mnemonics);
- tmp = tmp->next;
}
}
}
@@ -595,17 +587,13 @@
{
if (using_menu_accels != gconf_value_get_bool (val))
{
- GSList *tmp;
-
using_menu_accels = !using_menu_accels;
/* Reset the checkbuttons */
- tmp = living_menu_accel_checkbuttons;
- while (tmp != NULL)
+ if (edit_keys_dialog_menu_accel_checkbutton)
{
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tmp->data),
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (edit_keys_dialog_menu_accel_checkbutton),
!using_menu_accels);
- tmp = tmp->next;
}
/* Reset the actual feature; super broken hack alert */
@@ -841,14 +829,6 @@
return result;
}
-static void
-remove_from_list_callback (GtkObject *object, gpointer data)
-{
- GSList **listp = data;
-
- *listp = g_slist_remove (*listp, object);
-}
-
static gboolean
cb_check_for_uniqueness (GtkTreeModel *model,
GtkTreePath *path,
@@ -1151,11 +1131,11 @@
return;
w = glade_xml_get_widget (xml, "disable-mnemonics-checkbutton");
- living_mnemonics_checkbuttons = g_slist_prepend (living_mnemonics_checkbuttons,
- w);
+
+ edit_keys_dialog_mnemonics_checkbutton = w;
g_signal_connect (G_OBJECT (w), "destroy",
- G_CALLBACK (remove_from_list_callback),
- &living_mnemonics_checkbuttons);
+ G_CALLBACK (gtk_widget_destroyed),
+ &edit_keys_dialog_mnemonics_checkbutton);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), !using_mnemonics);
g_signal_connect (G_OBJECT (w), "toggled",
@@ -1163,11 +1143,11 @@
NULL);
w = glade_xml_get_widget (xml, "disable-menu-accel-checkbutton");
- living_mnemonics_checkbuttons = g_slist_prepend (living_menu_accel_checkbuttons,
- w);
+
+ edit_keys_dialog_menu_accel_checkbutton = w;
g_signal_connect (G_OBJECT (w), "destroy",
- G_CALLBACK (remove_from_list_callback),
- &living_menu_accel_checkbuttons);
+ G_CALLBACK (gtk_widget_destroyed),
+ &edit_keys_dialog_menu_accel_checkbutton);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w), !using_menu_accels);
g_signal_connect (G_OBJECT (w), "toggled",
@@ -1176,13 +1156,13 @@
w = glade_xml_get_widget (xml, "accelerators-treeview");
- living_treeviews = g_slist_prepend (living_treeviews, w);
-
g_signal_connect (G_OBJECT (w), "button_press_event",
G_CALLBACK (start_editing_cb), NULL);
- g_signal_connect (G_OBJECT (w), "destroy",
- G_CALLBACK (remove_from_list_callback),
- &living_treeviews);
+
+ edit_keys_dialog_treeview = w;
+ g_signal_connect (edit_keys_dialog_treeview, "destroy",
+ G_CALLBACK (gtk_widget_destroyed),
+ &edit_keys_dialog_treeview);
tree = gtk_tree_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_POINTER);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]