gnome-terminal r2827 - trunk/src
- From: chpe svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-terminal r2827 - trunk/src
- Date: Thu, 29 May 2008 19:58:00 +0000 (UTC)
Author: chpe
Date: Thu May 29 19:57:59 2008
New Revision: 2827
URL: http://svn.gnome.org/viewvc/gnome-terminal?rev=2827&view=rev
Log:
Simply use gtk_accel_group_query here.
Modified:
trunk/src/terminal-accels.c
Modified: trunk/src/terminal-accels.c
==============================================================================
--- trunk/src/terminal-accels.c (original)
+++ trunk/src/terminal-accels.c Thu May 29 19:57:59 2008
@@ -615,34 +615,6 @@
gtk_tree_model_foreach (model, update_model_foreach, accel_closure->data);
}
-static gboolean
-cb_check_for_uniqueness (GtkTreeModel *model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- gpointer user_data)
-{
- KeyEntry *key_entry = (KeyEntry *) user_data;
- KeyEntry *tmp_key_entry;
-
- gtk_tree_model_get (model, iter,
- KEYVAL_COLUMN, &tmp_key_entry,
- -1);
-
- if (tmp_key_entry != NULL &&
- key_entry->gconf_keyval == tmp_key_entry->gconf_keyval &&
- key_entry->gconf_mask == tmp_key_entry->gconf_mask &&
- /* be sure we don't claim a key is a dup of itself */
- strcmp (key_entry->gconf_key, tmp_key_entry->gconf_key) != 0)
- {
- key_entry->needs_gconf_sync = FALSE;
- key_entry->gconf_key = tmp_key_entry->gconf_key;
- key_entry->user_visible_name = tmp_key_entry->user_visible_name;
- return TRUE;
- }
-
- return FALSE;
-}
-
static void
accel_edited_callback (GtkCellRendererAccel *cell,
gchar *path_string,
@@ -654,7 +626,9 @@
GtkTreeModel *model;
GtkTreePath *path;
GtkTreeIter iter;
- KeyEntry *ke, tmp_key;
+ KeyEntry *ke;
+ GtkAccelGroupEntry *entries;
+ guint n_entries;
char *str;
GConfClient *conf;
@@ -676,22 +650,19 @@
if (ke == NULL)
return;
- tmp_key.gconf_keyval = keyval;
- tmp_key.gconf_mask = mask;
- tmp_key.gconf_key = ke->gconf_key;
- tmp_key.user_visible_name = NULL;
- tmp_key.needs_gconf_sync = TRUE; /* kludge: we'll use this as return flag in the _foreach call */
-
- if (keyval != 0)
+ /* Check if we already have an entry using this accel */
+ entries = gtk_accel_group_query (hack_group, keyval, mask, &n_entries);
+ if (n_entries > 0)
{
- gtk_tree_model_foreach (model, cb_check_for_uniqueness, &tmp_key);
-
- if (!tmp_key.needs_gconf_sync)
+ if (entries[0].accel_path_quark != g_quark_from_string (ke->accel_path))
{
GtkWidget *dialog;
char *name;
+ KeyEntry *other_key;
name = gtk_accelerator_get_label (keyval, mask);
+ other_key = entries[0].closure->data;
+ g_assert (other_key);
dialog =
gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (view))),
@@ -700,14 +671,14 @@
GTK_BUTTONS_OK,
_("The shortcut key â%sâ is already bound to the â%sâ action"),
name,
- tmp_key.user_visible_name ? _(tmp_key.user_visible_name) : tmp_key.gconf_key);
+ other_key->user_visible_name ? _(other_key->user_visible_name) : other_key->gconf_key);
g_free (name);
g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL);
gtk_window_present (GTK_WINDOW (dialog));
-
- return;
}
+
+ return;
}
str = binding_name (keyval, mask);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]