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 ().
This commit is contained in:
Alx Sa 2025-11-07 23:06:21 +00:00
parent e351203130
commit 32c9d11fd1
3 changed files with 30 additions and 1 deletions

View file

@ -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)

View file

@ -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);

View file

@ -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 *