diff options
author | Jens Granseuer <jensgr@gmx.net> | 2007-02-04 15:47:49 +0000 |
---|---|---|
committer | Jens Granseuer <jensg@src.gnome.org> | 2007-02-04 15:47:49 +0000 |
commit | 7aa1cede0d91ca668d2079c892e5641eb904d980 (patch) | |
tree | a238b5a944a67c712e37c463c324eab058351a15 /capplets/keybindings | |
parent | 765e80f9538ef218ef016e72362683f008ef8b28 (diff) | |
download | gnome-control-center-7aa1cede0d91ca668d2079c892e5641eb904d980.tar.gz |
clean up sorting to not use an imaginary column; change accel sort order
2007-02-04 Jens Granseuer <jensgr@gmx.net>
* gnome-keybinding-properties.c: (keyentry_sort_func),
(clear_old_model), (setup_dialog): clean up sorting to not use an
imaginary column; change accel sort order to move disabled actions
to the back of the list and also speed up sorting a bit
svn path=/trunk/; revision=7243
Diffstat (limited to 'capplets/keybindings')
-rw-r--r-- | capplets/keybindings/ChangeLog | 7 | ||||
-rw-r--r-- | capplets/keybindings/gnome-keybinding-properties.c | 63 |
2 files changed, 39 insertions, 31 deletions
diff --git a/capplets/keybindings/ChangeLog b/capplets/keybindings/ChangeLog index 40e6a5f2e..16e6de131 100644 --- a/capplets/keybindings/ChangeLog +++ b/capplets/keybindings/ChangeLog @@ -1,5 +1,12 @@ 2007-02-04 Jens Granseuer <jensgr@gmx.net> + * gnome-keybinding-properties.c: (keyentry_sort_func), + (clear_old_model), (setup_dialog): clean up sorting to not use an + imaginary column; change accel sort order to move disabled actions + to the back of the list and also speed up sorting a bit + +2007-02-04 Jens Granseuer <jensgr@gmx.net> + * eggaccelerators.c: (egg_virtual_accelerator_name), (egg_virtual_accelerator_label): * eggaccelerators.h: diff --git a/capplets/keybindings/gnome-keybinding-properties.c b/capplets/keybindings/gnome-keybinding-properties.c index bfc46719a..fd4e2336f 100644 --- a/capplets/keybindings/gnome-keybinding-properties.c +++ b/capplets/keybindings/gnome-keybinding-properties.c @@ -298,12 +298,8 @@ keyentry_sort_func (GtkTreeModel *model, { KeyEntry *key_entry_a; KeyEntry *key_entry_b; - char *name_a; - char *name_b; int retval; - /* mmmmm, super-slow. */ - key_entry_a = NULL; gtk_tree_model_get (model, a, KEYENTRY_COLUMN, &key_entry_a, @@ -314,35 +310,42 @@ keyentry_sort_func (GtkTreeModel *model, KEYENTRY_COLUMN, &key_entry_b, -1); - - if (key_entry_a != NULL) - name_a = binding_name (key_entry_a->keyval, - key_entry_a->keycode, - key_entry_a->mask, - TRUE); - else - name_a = NULL; + if (key_entry_a && key_entry_b) + { + if ((key_entry_a->keyval || key_entry_a->keycode) && + (key_entry_b->keyval || key_entry_b->keycode)) + { + gchar *name_a, *name_b; - if (key_entry_b != NULL) - name_b = binding_name (key_entry_b->keyval, - key_entry_b->keycode, - key_entry_b->mask, - TRUE); - else - name_b = NULL; + name_a = binding_name (key_entry_a->keyval, + key_entry_a->keycode, + key_entry_a->mask, + TRUE); - if (name_a && name_b) - retval = g_utf8_collate (name_a, name_b); - else if (name_a) - retval = 1; - else if (name_b) + name_b = binding_name (key_entry_b->keyval, + key_entry_b->keycode, + key_entry_b->mask, + TRUE); + + retval = g_utf8_collate (name_a, name_b); + + g_free (name_a); + g_free (name_b); + } + else if (key_entry_a->keyval || key_entry_a->keycode) + retval = -1; + else if (key_entry_b->keyval || key_entry_b->keycode) + retval = 1; + else + retval = 0; + } + else if (key_entry_a) retval = -1; + else if (key_entry_b) + retval = 1; else retval = 0; - g_free (name_a); - g_free (name_b); - return retval; } @@ -363,9 +366,8 @@ clear_old_model (GladeXML *dialog, sort_model = gtk_tree_model_sort_new_with_model (model); - /* N_COLUMNS is just a place to stick the extra sort function */ gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (sort_model), - N_COLUMNS, + KEYENTRY_COLUMN, keyentry_sort_func, NULL, NULL); @@ -929,8 +931,7 @@ setup_dialog (GladeXML *dialog) gtk_tree_view_column_set_resizable (column, FALSE); gtk_tree_view_append_column (GTK_TREE_VIEW (WID ("shortcut_treeview")), column); - /* N_COLUMNS is just a place to stick the extra sort function */ - gtk_tree_view_column_set_sort_column_id (column, N_COLUMNS); + gtk_tree_view_column_set_sort_column_id (column, KEYENTRY_COLUMN); gconf_client_add_dir (client, "/apps/gnome_keybinding_properties", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); gconf_client_add_dir (client, "/apps/metacity/general", GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); |