Fix for #131226, can select single listview child in multi-select mode

via keyboard.  From padraig.obriain.
This commit is contained in:
Bill Haneman
2004-08-26 15:42:15 +00:00
parent 6f2e3cc4ab
commit e77da6c140
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-22 Robert Ögren <gtk@roboros.com>
On Win32, make graphical tablets work on multi-monitor systems.

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-22 Robert Ögren <gtk@roboros.com>
On Win32, make graphical tablets work on multi-monitor systems.

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-22 Robert Ögren <gtk@roboros.com>
On Win32, make graphical tablets work on multi-monitor systems.

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-22 Robert Ögren <gtk@roboros.com>
On Win32, make graphical tablets work on multi-monitor systems.

View File

@@ -8116,6 +8116,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);