[geany/geany] c7b3a0: Update bold flag after editing shortcut
Nick Treleaven
git-noreply at xxxxx
Thu Jul 26 00:03:51 UTC 2012
Branch: refs/heads/document-messages
Author: Nick Treleaven <nick.treleaven at btinternet.com>
Committer: Nick Treleaven <nick.treleaven at btinternet.com>
Date: Wed, 04 Apr 2012 12:43:43
Commit: c7b3a09f05b32078f827b05fc0070345f9f7c33c
https://github.com/geany/geany/commit/c7b3a09f05b32078f827b05fc0070345f9f7c33c
Log Message:
-----------
Update bold flag after editing shortcut
Modified Paths:
--------------
src/prefs.c
Modified: src/prefs.c
38 files changed, 28 insertions(+), 10 deletions(-)
===================================================================
@@ -80,6 +80,7 @@
static GtkTreeView *various_treeview = NULL;
+static GeanyKeyBinding *kb_index(guint gidx, guint kid);
static void kb_cell_edited_cb(GtkCellRendererText *cellrenderertext, gchar *path, gchar *new_text, gpointer user_data);
static gboolean kb_grab_key_dialog_key_press_cb(GtkWidget *dialog, GdkEventKey *event, gpointer user_data);
static void kb_grab_key_dialog_response_cb(GtkWidget *dialog, gint response, gpointer user_data);
@@ -311,11 +312,33 @@ static void kb_init_tree(void)
}
+static void kb_set_shortcut(GtkTreeStore *store, GtkTreeIter *iter,
+ guint key, GdkModifierType mods)
+{
+ gchar *key_string = gtk_accelerator_name(key, mods);
+ GtkTreeIter parent;
+ guint kid, gid;
+ GeanyKeyBinding *kb;
+ gboolean bold;
+
+ gtk_tree_store_set(store, iter, KB_TREE_SHORTCUT, key_string, -1);
+ g_free(key_string);
+
+ gtk_tree_model_get(GTK_TREE_MODEL(store), iter, KB_TREE_INDEX, &kid, -1);
+ gtk_tree_model_iter_parent(GTK_TREE_MODEL(store), &parent, iter);
+ gtk_tree_model_get(GTK_TREE_MODEL(store), &parent, KB_TREE_INDEX, &gid, -1);
+ kb = kb_index(gid, kid);
+ bold = key != kb->default_key || mods != kb->default_mods;
+ gtk_tree_store_set(store, iter, KB_TREE_WEIGHT,
+ bold ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, -1);
+}
+
+
static void kb_init(void)
{
GtkTreeIter parent, iter;
gsize g, i;
- gchar *key_string, *label;
+ gchar *label;
GeanyKeyGroup *group;
GeanyKeyBinding *kb;
@@ -331,14 +354,10 @@ static void kb_init(void)
foreach_ptr_array(kb, i, group->key_items)
{
label = keybindings_get_label(kb);
- key_string = gtk_accelerator_name(kb->key, kb->mods);
gtk_tree_store_append(store, &iter, &parent);
gtk_tree_store_set(store, &iter, KB_TREE_ACTION, label,
- KB_TREE_SHORTCUT, key_string, KB_TREE_EDITABLE, TRUE,
- KB_TREE_INDEX, kb->id, -1);
- if (kb->key != kb->default_key || kb->mods != kb->default_mods)
- gtk_tree_store_set(store, &iter, KB_TREE_WEIGHT, PANGO_WEIGHT_BOLD, -1);
- g_free(key_string);
+ KB_TREE_EDITABLE, TRUE, KB_TREE_INDEX, kb->id, -1);
+ kb_set_shortcut(store, &iter, kb->key, kb->mods);
g_free(label);
}
}
@@ -1332,7 +1351,7 @@ static void kb_change_iter_shortcut(GtkTreeIter *iter, const gchar *new_text)
/* set the values here, because of the above check, setting it in
* gtk_accelerator_parse would return a wrong key combination if it is duplicate */
- gtk_tree_store_set(store, iter, KB_TREE_SHORTCUT, new_text, -1);
+ kb_set_shortcut(store, iter, lkey, lmods);
edited = TRUE;
}
@@ -1420,7 +1439,6 @@ static gboolean kb_find_duplicate(GtkWidget *parent, GtkTreeIter *old_iter,
continue;
do /* foreach children */
{
-
gtk_tree_model_get(model, &iter, KB_TREE_SHORTCUT, &kb_str, -1);
if (! kb_str)
continue;
@@ -1446,7 +1464,7 @@ static gboolean kb_find_duplicate(GtkWidget *parent, GtkTreeIter *old_iter,
if (ret == GTK_RESPONSE_YES)
{
- gtk_tree_store_set(store, &iter, KB_TREE_SHORTCUT, NULL, -1); /* clear shortcut */
+ kb_set_shortcut(store, &iter, 0, 0); /* clear shortcut */
/* carry on looking for other duplicates if overriding */
continue;
}
@@ Diff output truncated at 100000 characters. @@
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: TBD).
More information about the Commits
mailing list