mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-01 08:20:36 +00:00
GtkListBox: Implement non-selectable rows
This commit changes things so that we never mark non-selectable rows as selected.
This commit is contained in:
parent
7932370ef8
commit
0bfad993ac
@ -1388,6 +1388,9 @@ static gboolean
|
||||
gtk_list_box_row_set_selected (GtkListBoxRow *row,
|
||||
gboolean selected)
|
||||
{
|
||||
if (!ROW_PRIV (row)->selectable)
|
||||
return FALSE;
|
||||
|
||||
if (ROW_PRIV (row)->selected != selected)
|
||||
{
|
||||
ROW_PRIV (row)->selected = selected;
|
||||
@ -1448,11 +1451,15 @@ static void
|
||||
gtk_list_box_select_row_internal (GtkListBox *box,
|
||||
GtkListBoxRow *row)
|
||||
{
|
||||
if (!ROW_PRIV (row)->selectable)
|
||||
return;
|
||||
|
||||
if (ROW_PRIV (row)->selected)
|
||||
return;
|
||||
|
||||
if (BOX_PRIV (box)->selection_mode == GTK_SELECTION_NONE)
|
||||
return;
|
||||
|
||||
if (BOX_PRIV (box)->selection_mode != GTK_SELECTION_MULTIPLE)
|
||||
gtk_list_box_unselect_all_internal (box);
|
||||
|
||||
@ -1521,6 +1528,9 @@ gtk_list_box_update_selection (GtkListBox *box,
|
||||
if (priv->selection_mode == GTK_SELECTION_NONE)
|
||||
return;
|
||||
|
||||
if (!ROW_PRIV (row)->selectable)
|
||||
return;
|
||||
|
||||
if (priv->selection_mode == GTK_SELECTION_BROWSE)
|
||||
{
|
||||
gtk_list_box_unselect_all_internal (box);
|
||||
|
Loading…
Reference in New Issue
Block a user