From 32c9d11fd1754adff3d168d0bd13ff86be6f8da9 Mon Sep 17 00:00:00 2001 From: Alx Sa Date: Fri, 7 Nov 2025 23:06:21 +0000 Subject: [PATCH] widgets: Don't hardcode item column in blink_item () In gimp_item_tree_view_blink_item (), we originally used "3" because that is the item column in the layer and channel dockables. However, the path dockable item column is at "2" since it lacks a filter column. To make this more general, Jehan suggested we create a gimp_container_tree_view_get_main_column_position () function in GimpContainerTreeView that finds and returns the column index of the main item. Then, we use that function in gimp_item_tree_view_blink_item (). --- app/widgets/gimpcontainertreeview.c | 17 +++++++++++++++++ app/widgets/gimpcontainertreeview.h | 3 +++ app/widgets/gimpitemtreeview.c | 11 ++++++++++- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/app/widgets/gimpcontainertreeview.c b/app/widgets/gimpcontainertreeview.c index 2aa63550c0..54138bacb3 100644 --- a/app/widgets/gimpcontainertreeview.c +++ b/app/widgets/gimpcontainertreeview.c @@ -484,6 +484,23 @@ gimp_container_tree_view_set_main_column_title (GimpContainerTreeView *tree_view title); } +gint +gimp_container_tree_view_get_main_column_position (GimpContainerTreeView *tree_view) +{ + g_return_val_if_fail (GIMP_IS_CONTAINER_TREE_VIEW (tree_view), -1); + + for (gint i = 0; i < tree_view->n_model_columns; i++) + { + GtkTreeViewColumn *column; + + column = gtk_tree_view_get_column (tree_view->view, i); + if (tree_view->main_column == column) + return i; + } + + return -1; +} + void gimp_container_tree_view_add_toggle_cell (GimpContainerTreeView *tree_view, GtkCellRenderer *cell) diff --git a/app/widgets/gimpcontainertreeview.h b/app/widgets/gimpcontainertreeview.h index c8459cffb7..41b1a9e214 100644 --- a/app/widgets/gimpcontainertreeview.h +++ b/app/widgets/gimpcontainertreeview.h @@ -114,6 +114,9 @@ void gimp_container_tree_view_set_main_column_title (GimpContainerTreeView *tree_view, const gchar *title); +gint gimp_container_tree_view_get_main_column_position + (GimpContainerTreeView *tree_view); + void gimp_container_tree_view_add_toggle_cell (GimpContainerTreeView *tree_view, GtkCellRenderer *cell); diff --git a/app/widgets/gimpitemtreeview.c b/app/widgets/gimpitemtreeview.c index 9bc56181a8..19f23199ed 100644 --- a/app/widgets/gimpitemtreeview.c +++ b/app/widgets/gimpitemtreeview.c @@ -1024,7 +1024,16 @@ void gimp_item_tree_view_blink_item (GimpItemTreeView *view, GimpItem *item) { - gimp_item_tree_view_blink_item_column (view, item, 3); + GimpContainerTreeView *container_view; + gint item_index; + + container_view = GIMP_CONTAINER_TREE_VIEW (view); + + item_index = + gimp_container_tree_view_get_main_column_position (container_view); + + if (item_index > -1) + gimp_item_tree_view_blink_item_column (view, item, item_index); } GtkWidget *