3 weeks ago
fix wrong selection in list onactivate event, when the item was pre-selected
ui/gtk/list.c | file | annotate | diff | comparison | revisions |
--- a/ui/gtk/list.c Sun Feb 23 14:38:27 2025 +0100 +++ b/ui/gtk/list.c Sun Feb 23 14:55:23 2025 +0100 @@ -454,13 +454,7 @@ } } -void ui_columnview_activate(void *ignore, guint position, gpointer userdata) { - UiListView *view = userdata; - listview_event(view->onactivate, view->onactivatedata, view); -} - -void ui_listview_selection_changed(GtkSelectionModel* self, guint position, guint n_items, gpointer userdata) { - UiListView *view = userdata; +static void listview_update_selection(UiListView *view) { free(view->selection.rows); view->selection.count = 0; view->selection.rows = NULL; @@ -483,7 +477,19 @@ } else { free(newselection); } +} +void ui_columnview_activate(void *ignore, guint position, gpointer userdata) { + UiListView *view = userdata; + if(view->selection.count == 0) { + listview_update_selection(view); + } + listview_event(view->onactivate, view->onactivatedata, view); +} + +void ui_listview_selection_changed(GtkSelectionModel* self, guint position, guint n_items, gpointer userdata) { + UiListView *view = userdata; + listview_update_selection(view); listview_event(view->onselection, view->onselectiondata, view); }