app: set the container last in all GimpContainerView constructors, to
avoid traversing the just-filled view when "context" or "view-size" changes.
This commit is contained in:
parent
c114e96096
commit
92e68453df
5 changed files with 31 additions and 56 deletions
|
|
@ -238,26 +238,21 @@ gimp_container_combo_box_new (GimpContainer *container,
|
|||
gint view_size,
|
||||
gint view_border_width)
|
||||
{
|
||||
GtkWidget *combo_box;
|
||||
GimpContainerView *view;
|
||||
|
||||
g_return_val_if_fail (container == NULL || GIMP_IS_CONTAINER (container),
|
||||
NULL);
|
||||
g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL);
|
||||
g_return_val_if_fail (view_size > 0 &&
|
||||
view_size <= GIMP_VIEWABLE_MAX_PREVIEW_SIZE, NULL);
|
||||
g_return_val_if_fail (view_border_width >= 0 &&
|
||||
view_border_width <= GIMP_VIEW_MAX_BORDER_WIDTH,
|
||||
NULL);
|
||||
|
||||
combo_box = g_object_new (GIMP_TYPE_CONTAINER_COMBO_BOX, NULL);
|
||||
|
||||
view = GIMP_CONTAINER_VIEW (combo_box);
|
||||
|
||||
gimp_container_view_set_view_size (view, view_size, view_border_width);
|
||||
|
||||
if (container)
|
||||
gimp_container_view_set_container (view, container);
|
||||
|
||||
if (context)
|
||||
gimp_container_view_set_context (view, context);
|
||||
|
||||
return combo_box;
|
||||
return g_object_new (GIMP_TYPE_CONTAINER_COMBO_BOX,
|
||||
"view-size", view_size,
|
||||
"view-border-width", view_border_width,
|
||||
"context", context,
|
||||
"container", container,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -181,26 +181,16 @@ gimp_container_entry_new (GimpContainer *container,
|
|||
gint view_size,
|
||||
gint view_border_width)
|
||||
{
|
||||
GtkWidget *entry;
|
||||
GimpContainerView *view;
|
||||
|
||||
g_return_val_if_fail (container == NULL || GIMP_IS_CONTAINER (container),
|
||||
NULL);
|
||||
g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL);
|
||||
|
||||
entry = g_object_new (GIMP_TYPE_CONTAINER_ENTRY, NULL);
|
||||
|
||||
view = GIMP_CONTAINER_VIEW (entry);
|
||||
|
||||
gimp_container_view_set_view_size (view, view_size, view_border_width);
|
||||
|
||||
if (container)
|
||||
gimp_container_view_set_container (view, container);
|
||||
|
||||
if (context)
|
||||
gimp_container_view_set_context (view, context);
|
||||
|
||||
return entry;
|
||||
return g_object_new (GIMP_TYPE_CONTAINER_ENTRY,
|
||||
"view-size", view_size,
|
||||
"view-border-width", view_border_width,
|
||||
"context", context,
|
||||
"container", container,
|
||||
NULL);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -297,12 +297,12 @@ gimp_container_icon_view_new (GimpContainer *container,
|
|||
|
||||
gimp_container_view_set_view_size (view, view_size, 0 /* ignore border */);
|
||||
|
||||
if (container)
|
||||
gimp_container_view_set_container (view, container);
|
||||
|
||||
if (context)
|
||||
gimp_container_view_set_context (view, context);
|
||||
|
||||
if (container)
|
||||
gimp_container_view_set_container (view, container);
|
||||
|
||||
return GTK_WIDGET (icon_view);
|
||||
}
|
||||
|
||||
|
|
@ -375,9 +375,9 @@ gimp_container_icon_view_set_context (GimpContainerView *view,
|
|||
gimp_container_tree_store_set_context (GIMP_CONTAINER_TREE_STORE (icon_view->model),
|
||||
context);
|
||||
|
||||
if (context != NULL)
|
||||
if (context)
|
||||
{
|
||||
if (icon_view->priv->color_scheme_handler_id == 0)
|
||||
if (! icon_view->priv->color_scheme_handler_id)
|
||||
icon_view->priv->color_scheme_handler_id =
|
||||
g_signal_connect_object (context->gimp->config,
|
||||
"notify::theme-color-scheme",
|
||||
|
|
|
|||
|
|
@ -231,9 +231,6 @@ gimp_container_list_view_new (GimpContainer *container,
|
|||
gint view_size,
|
||||
gint view_border_width)
|
||||
{
|
||||
GimpContainerListView *list_view;
|
||||
GimpContainerView *view;
|
||||
|
||||
g_return_val_if_fail (container == NULL || GIMP_IS_CONTAINER (container),
|
||||
NULL);
|
||||
g_return_val_if_fail (context == NULL || GIMP_IS_CONTEXT (context), NULL);
|
||||
|
|
@ -243,19 +240,12 @@ gimp_container_list_view_new (GimpContainer *container,
|
|||
view_border_width <= GIMP_VIEW_MAX_BORDER_WIDTH,
|
||||
NULL);
|
||||
|
||||
list_view = g_object_new (GIMP_TYPE_CONTAINER_LIST_VIEW, NULL);
|
||||
|
||||
view = GIMP_CONTAINER_VIEW (list_view);
|
||||
|
||||
gimp_container_view_set_view_size (view, view_size, view_border_width);
|
||||
|
||||
if (container)
|
||||
gimp_container_view_set_container (view, container);
|
||||
|
||||
if (context)
|
||||
gimp_container_view_set_context (view, context);
|
||||
|
||||
return GTK_WIDGET (list_view);
|
||||
return g_object_new (GIMP_TYPE_CONTAINER_LIST_VIEW,
|
||||
"view-size", view_size,
|
||||
"view-border-width", view_border_width,
|
||||
"context", context,
|
||||
"container", container,
|
||||
NULL);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -457,12 +457,12 @@ gimp_container_tree_view_new (GimpContainer *container,
|
|||
|
||||
gimp_container_view_set_view_size (view, view_size, view_border_width);
|
||||
|
||||
if (container)
|
||||
gimp_container_view_set_container (view, container);
|
||||
|
||||
if (context)
|
||||
gimp_container_view_set_context (view, context);
|
||||
|
||||
if (container)
|
||||
gimp_container_view_set_container (view, container);
|
||||
|
||||
return GTK_WIDGET (tree_view);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue