From 8a1ae9bbbd2a5da6684b0ec34b49c8a3337f95dc Mon Sep 17 00:00:00 2001 From: Julien Bonjean <julien@bonjean.info> Date: Fri, 5 Mar 2010 16:25:11 -0500 Subject: [PATCH] [#2916] Added support to disable a shortcut --- .../src/config/shortcuts-config.c | 20 +++++++++++++++++++ .../src/config/shortcuts-config.h | 10 +++++++--- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/sflphone-client-gnome/src/config/shortcuts-config.c b/sflphone-client-gnome/src/config/shortcuts-config.c index 91e4d140a9..bffab5f554 100644 --- a/sflphone-client-gnome/src/config/shortcuts-config.c +++ b/sflphone-client-gnome/src/config/shortcuts-config.c @@ -85,12 +85,15 @@ setup_tree_view(GtkWidget *treeview) gtk_tree_view_append_column(GTK_TREE_VIEW (treeview), column); g_signal_connect (G_OBJECT (renderer), "accel_edited", G_CALLBACK (accel_edited), (gpointer) treeview); + g_signal_connect (G_OBJECT (renderer), "accel_cleared", G_CALLBACK (accel_cleared), (gpointer) treeview); } static void accel_edited(GtkCellRendererAccel *renderer, gchar *path, guint accel_key, GdkModifierType mask, guint hardware_keycode, GtkTreeView *treeview) { + DEBUG("Accel edited"); + GtkTreeModel *model; GtkTreeIter iter; @@ -105,3 +108,20 @@ accel_edited(GtkCellRendererAccel *renderer, gchar *path, guint accel_key, // Update GDK bindings shortcuts_update_bindings(atoi(path), code); } + +static void +accel_cleared(GtkCellRendererAccel *renderer, gchar *path, GtkTreeView *treeview) +{ + DEBUG("Accel cleared"); + + GtkTreeModel *model; + GtkTreeIter iter; + + // Update treeview + model = gtk_tree_view_get_model(treeview); + if (gtk_tree_model_get_iter_from_string(model, &iter, path)) + gtk_list_store_set(GTK_LIST_STORE (model), &iter, MASK, 0, VALUE, 0, -1); + + // Update GDK bindings + shortcuts_update_bindings(atoi(path), 0); +} diff --git a/sflphone-client-gnome/src/config/shortcuts-config.h b/sflphone-client-gnome/src/config/shortcuts-config.h index 61306699f0..b7edf5c549 100644 --- a/sflphone-client-gnome/src/config/shortcuts-config.h +++ b/sflphone-client-gnome/src/config/shortcuts-config.h @@ -34,15 +34,19 @@ enum }; GtkWidget* -create_shortcuts_settings(); +create_shortcuts_settings (); static void -setup_tree_view(GtkWidget *treeview); +setup_tree_view (GtkWidget *treeview); static void -accel_edited(GtkCellRendererAccel *renderer, gchar *path, guint accel_key, +accel_edited (GtkCellRendererAccel *renderer, gchar *path, guint accel_key, GdkModifierType mask, guint hardware_keycode, GtkTreeView *treeview); +static void +accel_cleared (GtkCellRendererAccel *renderer, gchar *path, + GtkTreeView *treeview); + G_END_DECLS #endif // _SHORTCUTS_CONFIG -- GitLab