Fix for #131226, allow selection of singleton list items in multi-select

lists, via keyboard.  [on behalf of Padraig O'Briain]
This commit is contained in:
Bill Haneman 2004-08-26 14:12:31 +00:00
parent c429b89d56
commit 3124567f18
5 changed files with 61 additions and 0 deletions

View File

@ -1,3 +1,12 @@
2004-08-26 Bill Haneman <billh@gnome.org>
* gtk/gtktreeview:
(gtk_tree_view_move_cursor_up_down):
If a multi-selection list contains only one item,
select it on cursor_up or cursor_down.
Fixes bug #131226.
[patch from Padraig O'Briain]
2004-08-26 Matthias Clasen <mclasen@redhat.com>
Make gdk_window_process_[all]_updates() respect

View File

@ -1,3 +1,12 @@
2004-08-26 Bill Haneman <billh@gnome.org>
* gtk/gtktreeview:
(gtk_tree_view_move_cursor_up_down):
If a multi-selection list contains only one item,
select it on cursor_up or cursor_down.
Fixes bug #131226.
[patch from Padraig O'Briain]
2004-08-26 Matthias Clasen <mclasen@redhat.com>
Make gdk_window_process_[all]_updates() respect

View File

@ -1,3 +1,12 @@
2004-08-26 Bill Haneman <billh@gnome.org>
* gtk/gtktreeview:
(gtk_tree_view_move_cursor_up_down):
If a multi-selection list contains only one item,
select it on cursor_up or cursor_down.
Fixes bug #131226.
[patch from Padraig O'Briain]
2004-08-26 Matthias Clasen <mclasen@redhat.com>
Make gdk_window_process_[all]_updates() respect

View File

@ -1,3 +1,12 @@
2004-08-26 Bill Haneman <billh@gnome.org>
* gtk/gtktreeview:
(gtk_tree_view_move_cursor_up_down):
If a multi-selection list contains only one item,
select it on cursor_up or cursor_down.
Fixes bug #131226.
[patch from Padraig O'Briain]
2004-08-26 Matthias Clasen <mclasen@redhat.com>
Make gdk_window_process_[all]_updates() respect

View File

@ -8378,6 +8378,31 @@ gtk_tree_view_move_cursor_up_down (GtkTreeView *tree_view,
_gtk_rbtree_next_full (cursor_tree, cursor_node,
&new_cursor_tree, &new_cursor_node);
/*
* If the list has only one item and multi-selection is set then select
* the row.
*/
if (tree_view->priv->selection->type == GTK_SELECTION_MULTIPLE &&
new_cursor_node == NULL)
{
if (count == -1)
_gtk_rbtree_next_full (cursor_tree, cursor_node,
&new_cursor_tree, &new_cursor_node);
else
_gtk_rbtree_prev_full (cursor_tree, cursor_node,
&new_cursor_tree, &new_cursor_node);
if (new_cursor_node == NULL)
{
new_cursor_node = cursor_node;
new_cursor_tree = cursor_tree;
}
else
{
new_cursor_node = NULL;
}
}
if (new_cursor_node)
{
cursor_path = _gtk_tree_view_find_path (tree_view, new_cursor_tree, new_cursor_node);