diff --git a/sflphone-client-gnome/src/config/shortcuts-config.c b/sflphone-client-gnome/src/config/shortcuts-config.c index 91e4d140a960e318eb9f5447ecc19110585951e8..bffab5f554f4e0d8ade493291efe10eb902eb6ff 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 61306699f01de1b9133df02f6ba09aeb2c90bbf3..b7edf5c5499eb2caffc6821495bafa06a3b7edbf 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