app: display the floating mask over the layer mask.
It would make using floating masks a lot easier as it is visually understandable that it applies to the layer mask.
This commit is contained in:
parent
2c4f91f585
commit
28457ce337
10 changed files with 142 additions and 93 deletions
|
|
@ -167,7 +167,7 @@ gimp_container_combo_box_init (GimpContainerComboBox *combo)
|
|||
NULL);
|
||||
|
||||
gimp_container_tree_store_add_renderer_cell (GIMP_CONTAINER_TREE_STORE (model),
|
||||
cell);
|
||||
cell, -1);
|
||||
|
||||
combo->viewable_renderer = cell;
|
||||
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ gimp_container_entry_init (GimpContainerEntry *entry)
|
|||
NULL);
|
||||
|
||||
gimp_container_tree_store_add_renderer_cell (GIMP_CONTAINER_TREE_STORE (model),
|
||||
cell);
|
||||
cell, -1);
|
||||
|
||||
gtk_entry_completion_set_text_column (completion,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_NAME);
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ gimp_container_icon_view_constructed (GObject *object)
|
|||
NULL);
|
||||
|
||||
gimp_container_tree_store_add_renderer_cell (GIMP_CONTAINER_TREE_STORE (icon_view->model),
|
||||
icon_view->renderer_cell);
|
||||
icon_view->renderer_cell, -1);
|
||||
|
||||
g_signal_connect (icon_view->view, "selection-changed",
|
||||
G_CALLBACK (gimp_container_icon_view_selection_changed),
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ struct _GimpContainerTreeStorePrivate
|
|||
{
|
||||
GimpContainerView *container_view;
|
||||
GList *renderer_cells;
|
||||
GList *renderer_columns;
|
||||
gboolean use_name;
|
||||
};
|
||||
|
||||
|
|
@ -123,11 +124,8 @@ gimp_container_tree_store_finalize (GObject *object)
|
|||
{
|
||||
GimpContainerTreeStorePrivate *private = GET_PRIVATE (object);
|
||||
|
||||
if (private->renderer_cells)
|
||||
{
|
||||
g_list_free (private->renderer_cells);
|
||||
private->renderer_cells = NULL;
|
||||
}
|
||||
g_list_free (private->renderer_cells);
|
||||
g_list_free (private->renderer_columns);
|
||||
|
||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
|
|
@ -203,7 +201,8 @@ gimp_container_tree_store_new (GimpContainerView *container_view,
|
|||
|
||||
void
|
||||
gimp_container_tree_store_add_renderer_cell (GimpContainerTreeStore *store,
|
||||
GtkCellRenderer *cell)
|
||||
GtkCellRenderer *cell,
|
||||
gint column_number)
|
||||
{
|
||||
GimpContainerTreeStorePrivate *private;
|
||||
|
||||
|
|
@ -213,6 +212,37 @@ gimp_container_tree_store_add_renderer_cell (GimpContainerTreeStore *store,
|
|||
private = GET_PRIVATE (store);
|
||||
|
||||
private->renderer_cells = g_list_prepend (private->renderer_cells, cell);
|
||||
if (column_number >= 0)
|
||||
private->renderer_columns = g_list_append (private->renderer_columns,
|
||||
GINT_TO_POINTER (column_number));
|
||||
|
||||
}
|
||||
|
||||
GimpViewRenderer *
|
||||
gimp_container_tree_store_get_renderer (GimpContainerTreeStore *store,
|
||||
GtkTreeIter *iter)
|
||||
{
|
||||
GimpContainerTreeStorePrivate *private;
|
||||
GimpViewRenderer *renderer = NULL;
|
||||
GList *c;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_CONTAINER_TREE_STORE (store), NULL);
|
||||
|
||||
private = GET_PRIVATE (store);
|
||||
|
||||
for (c = private->renderer_columns; c; c = c->next)
|
||||
{
|
||||
gtk_tree_model_get (GTK_TREE_MODEL (store), iter,
|
||||
GPOINTER_TO_INT (c->data), &renderer,
|
||||
-1);
|
||||
|
||||
if (renderer)
|
||||
break;
|
||||
}
|
||||
|
||||
g_return_val_if_fail (renderer != NULL, NULL);
|
||||
|
||||
return renderer;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -67,7 +67,12 @@ GtkTreeModel * gimp_container_tree_store_new (GimpContainerView *
|
|||
GType *types);
|
||||
|
||||
void gimp_container_tree_store_add_renderer_cell (GimpContainerTreeStore *store,
|
||||
GtkCellRenderer *cell);
|
||||
GtkCellRenderer *cell,
|
||||
gint column_number);
|
||||
GimpViewRenderer *
|
||||
gimp_container_tree_store_get_renderer (GimpContainerTreeStore *store,
|
||||
GtkTreeIter *iter);
|
||||
|
||||
void gimp_container_tree_store_set_use_name (GimpContainerTreeStore *store,
|
||||
gboolean use_name);
|
||||
gboolean gimp_container_tree_store_get_use_name (GimpContainerTreeStore *store);
|
||||
|
|
|
|||
|
|
@ -247,9 +247,8 @@ gimp_container_tree_view_drop_status (GimpContainerTreeView *tree_view,
|
|||
|
||||
gtk_tree_model_get_iter (tree_view->model, &iter, drop_path);
|
||||
|
||||
gtk_tree_model_get (tree_view->model, &iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (tree_view->model),
|
||||
&iter);
|
||||
|
||||
dest_viewable = renderer->viewable;
|
||||
|
||||
|
|
@ -297,10 +296,8 @@ gimp_container_tree_view_drop_status (GimpContainerTreeView *tree_view,
|
|||
{
|
||||
GimpViewRenderer *renderer;
|
||||
|
||||
gtk_tree_model_get (tree_view->model, &iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER,
|
||||
&renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (tree_view->model),
|
||||
&iter);
|
||||
|
||||
drop_path = gtk_tree_model_get_path (tree_view->model, &iter);
|
||||
dest_viewable = renderer->viewable;
|
||||
|
|
|
|||
|
|
@ -335,7 +335,8 @@ gimp_container_tree_view_constructed (GObject *object)
|
|||
tree_view);
|
||||
|
||||
gimp_container_tree_view_add_renderer_cell (tree_view,
|
||||
tree_view->renderer_cell);
|
||||
tree_view->renderer_cell,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER);
|
||||
|
||||
tree_view->priv->selection = gtk_tree_view_get_selection (tree_view->view);
|
||||
|
||||
|
|
@ -395,11 +396,7 @@ gimp_container_tree_view_finalize (GObject *object)
|
|||
tree_view->priv->toggle_cells = NULL;
|
||||
}
|
||||
|
||||
if (tree_view->priv->renderer_cells)
|
||||
{
|
||||
g_list_free (tree_view->priv->renderer_cells);
|
||||
tree_view->priv->renderer_cells = NULL;
|
||||
}
|
||||
g_list_free (tree_view->priv->renderer_cells);
|
||||
|
||||
if (tree_view->priv->editable_cells)
|
||||
{
|
||||
|
|
@ -421,9 +418,7 @@ gimp_container_tree_view_style_updated_foreach (GtkTreeModel *model,
|
|||
{
|
||||
GimpViewRenderer *renderer;
|
||||
|
||||
gtk_tree_model_get (model, iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (model), iter);
|
||||
|
||||
if (renderer)
|
||||
{
|
||||
|
|
@ -551,7 +546,8 @@ gimp_container_tree_view_add_toggle_cell (GimpContainerTreeView *tree_view,
|
|||
|
||||
void
|
||||
gimp_container_tree_view_add_renderer_cell (GimpContainerTreeView *tree_view,
|
||||
GtkCellRenderer *cell)
|
||||
GtkCellRenderer *cell,
|
||||
gint column_number)
|
||||
{
|
||||
g_return_if_fail (GIMP_IS_CONTAINER_TREE_VIEW (tree_view));
|
||||
g_return_if_fail (GIMP_IS_CELL_RENDERER_VIEWABLE (cell));
|
||||
|
|
@ -560,7 +556,7 @@ gimp_container_tree_view_add_renderer_cell (GimpContainerTreeView *tree_view,
|
|||
cell);
|
||||
|
||||
gimp_container_tree_store_add_renderer_cell (GIMP_CONTAINER_TREE_STORE (tree_view->model),
|
||||
cell);
|
||||
cell, column_number);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -612,9 +608,7 @@ gimp_container_tree_view_name_edited (GtkCellRendererText *cell,
|
|||
GimpObject *object;
|
||||
const gchar *old_name;
|
||||
|
||||
gtk_tree_model_get (tree_view->model, &iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (tree_view->model), &iter);
|
||||
|
||||
object = GIMP_OBJECT (renderer->viewable);
|
||||
|
||||
|
|
@ -820,9 +814,8 @@ gimp_container_tree_view_reorder_item (GimpContainerView *view,
|
|||
{
|
||||
GimpViewRenderer *renderer;
|
||||
|
||||
gtk_tree_model_get (tree_view->model, &selected_iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (tree_view->model),
|
||||
&selected_iter);
|
||||
|
||||
if (renderer->viewable != viewable)
|
||||
selected = FALSE;
|
||||
|
|
@ -868,9 +861,7 @@ gimp_container_tree_view_expand_item (GimpContainerView *view,
|
|||
GtkTreeIter *iter = (GtkTreeIter *) insert_data;
|
||||
GimpViewRenderer *renderer;
|
||||
|
||||
gtk_tree_model_get (tree_view->model, iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (tree_view->model), iter);
|
||||
|
||||
if (renderer)
|
||||
{
|
||||
|
|
@ -1090,9 +1081,8 @@ gimp_container_tree_view_real_edit_name (GimpContainerTreeView *tree_view)
|
|||
{
|
||||
GimpViewRenderer *renderer;
|
||||
|
||||
gtk_tree_model_get (tree_view->model, &selected_iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (tree_view->model),
|
||||
&selected_iter);
|
||||
|
||||
if (gimp_viewable_is_name_editable (renderer->viewable))
|
||||
{
|
||||
|
|
@ -1172,9 +1162,7 @@ gimp_container_tree_view_name_started (GtkCellRendererText *cell,
|
|||
GimpViewRenderer *renderer;
|
||||
const gchar *real_name;
|
||||
|
||||
gtk_tree_model_get (tree_view->model, &iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (tree_view->model), &iter);
|
||||
|
||||
real_name = gimp_object_get_name (renderer->viewable);
|
||||
gimp_view_renderer_remove_idle (renderer);
|
||||
|
|
@ -1198,9 +1186,7 @@ gimp_container_tree_view_name_canceled (GtkCellRendererText *cell,
|
|||
GimpViewRenderer *renderer;
|
||||
gchar *name;
|
||||
|
||||
gtk_tree_model_get (tree_view->model, &iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (tree_view->model), &iter);
|
||||
|
||||
name = gimp_viewable_get_description (renderer->viewable, NULL);
|
||||
|
||||
|
|
@ -1313,9 +1299,7 @@ gimp_container_tree_view_button (GtkWidget *widget,
|
|||
|
||||
gtk_tree_model_get_iter (tree_view->model, &iter, path);
|
||||
|
||||
gtk_tree_model_get (tree_view->model, &iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (tree_view->model), &iter);
|
||||
|
||||
tree_view->priv->dnd_renderer = renderer;
|
||||
|
||||
|
|
@ -1699,9 +1683,7 @@ gimp_container_tree_view_tooltip (GtkWidget *widget,
|
|||
NULL, &path, &iter))
|
||||
return FALSE;
|
||||
|
||||
gtk_tree_model_get (tree_view->model, &iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (tree_view->model), &iter);
|
||||
|
||||
if (renderer)
|
||||
{
|
||||
|
|
@ -1884,9 +1866,8 @@ gimp_container_tree_view_get_selected (GimpContainerView *view,
|
|||
gtk_tree_model_get_iter (GTK_TREE_MODEL (tree_view->model), &iter,
|
||||
(GtkTreePath *) current_row->data);
|
||||
|
||||
gtk_tree_model_get (tree_view->model, &iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (tree_view->model),
|
||||
&iter);
|
||||
|
||||
if (renderer->viewable)
|
||||
*items = g_list_prepend (*items, renderer->viewable);
|
||||
|
|
@ -1925,9 +1906,8 @@ gimp_container_tree_view_row_expanded (GtkTreeView *tree_view,
|
|||
{
|
||||
GimpViewRenderer *renderer;
|
||||
|
||||
gtk_tree_model_get (view->model, iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (view->model),
|
||||
iter);
|
||||
if (renderer)
|
||||
{
|
||||
gboolean expanded = gtk_tree_view_row_expanded (tree_view, path);
|
||||
|
|
@ -1964,9 +1944,8 @@ gimp_container_tree_view_expand_rows (GtkTreeModel *model,
|
|||
{
|
||||
GimpViewRenderer *renderer;
|
||||
|
||||
gtk_tree_model_get (model, &iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (model),
|
||||
&iter);
|
||||
if (renderer)
|
||||
{
|
||||
GtkTreePath *path = gtk_tree_model_get_path (model, &iter);
|
||||
|
|
@ -1993,9 +1972,8 @@ gimp_container_tree_view_monitor_changed_foreach (GtkTreeModel *model,
|
|||
{
|
||||
GimpViewRenderer *renderer;
|
||||
|
||||
gtk_tree_model_get (model, iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (model),
|
||||
iter);
|
||||
|
||||
if (renderer)
|
||||
{
|
||||
|
|
@ -2029,9 +2007,8 @@ gimp_container_tree_view_search_path_foreach (GtkTreeModel *model,
|
|||
SearchData *search_data = data;
|
||||
GimpViewRenderer *renderer;
|
||||
|
||||
gtk_tree_model_get (model, iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (model),
|
||||
iter);
|
||||
|
||||
if (renderer->viewable == search_data->viewable)
|
||||
search_data->path = gtk_tree_path_copy (path);
|
||||
|
|
|
|||
|
|
@ -122,7 +122,8 @@ void gimp_container_tree_view_add_toggle_cell
|
|||
|
||||
void gimp_container_tree_view_add_renderer_cell
|
||||
(GimpContainerTreeView *tree_view,
|
||||
GtkCellRenderer *cell);
|
||||
GtkCellRenderer *cell,
|
||||
gint column_number);
|
||||
|
||||
void gimp_container_tree_view_set_dnd_drop_to_empty
|
||||
(GimpContainerTreeView *tree_view,
|
||||
|
|
|
|||
|
|
@ -1569,9 +1569,8 @@ gimp_item_tree_view_name_edited (GtkCellRendererText *cell,
|
|||
const gchar *old_name;
|
||||
GError *error = NULL;
|
||||
|
||||
gtk_tree_model_get (tree_view->model, &iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (tree_view->model),
|
||||
&iter);
|
||||
|
||||
item = GIMP_ITEM (renderer->viewable);
|
||||
|
||||
|
|
@ -1666,9 +1665,8 @@ gimp_item_tree_view_eye_clicked (GtkCellRendererToggle *toggle,
|
|||
|
||||
context = gimp_container_view_get_context (GIMP_CONTAINER_VIEW (view));
|
||||
|
||||
gtk_tree_model_get (tree_view->model, &iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (tree_view->model),
|
||||
&iter);
|
||||
g_object_get (toggle,
|
||||
"active", &active,
|
||||
NULL);
|
||||
|
|
@ -1724,14 +1722,14 @@ gimp_item_tree_view_lock_clicked (GtkCellRendererToggle *toggle,
|
|||
if (gtk_tree_model_get_iter (GIMP_CONTAINER_TREE_VIEW (view)->model,
|
||||
&iter, path))
|
||||
{
|
||||
GimpViewRenderer *renderer;
|
||||
GimpItem *item;
|
||||
GdkRectangle rect;
|
||||
GimpViewRenderer *renderer;
|
||||
GimpContainerTreeStore *store;
|
||||
GimpItem *item;
|
||||
GdkRectangle rect;
|
||||
|
||||
/* Update the lock state. */
|
||||
gtk_tree_model_get (GIMP_CONTAINER_TREE_VIEW (view)->model, &iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
store = GIMP_CONTAINER_TREE_STORE (GIMP_CONTAINER_TREE_VIEW (view)->model);
|
||||
renderer = gimp_container_tree_store_get_renderer (store, &iter);
|
||||
item = GIMP_ITEM (renderer->viewable);
|
||||
g_object_unref (renderer);
|
||||
gimp_item_tree_view_update_lock_box (view, item, path);
|
||||
|
|
@ -1918,9 +1916,8 @@ gimp_item_tree_view_item_pre_clicked (GimpCellRendererViewable *cell,
|
|||
GimpImage *image = gimp_item_tree_view_get_image (item_view);
|
||||
GimpViewRenderer *renderer = NULL;
|
||||
|
||||
gtk_tree_model_get (tree_view->model, &iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
renderer = gimp_container_tree_store_get_renderer (GIMP_CONTAINER_TREE_STORE (tree_view->model),
|
||||
&iter);
|
||||
|
||||
if (renderer)
|
||||
{
|
||||
|
|
@ -2062,12 +2059,12 @@ gimp_item_tree_view_row_expanded (GtkTreeView *tree_view,
|
|||
|
||||
if (selected_items)
|
||||
{
|
||||
GimpViewRenderer *renderer;
|
||||
GimpItem *expanded_item;
|
||||
GimpContainerTreeStore *store;
|
||||
GimpViewRenderer *renderer;
|
||||
GimpItem *expanded_item;
|
||||
|
||||
gtk_tree_model_get (GIMP_CONTAINER_TREE_VIEW (item_view)->model, iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
store = GIMP_CONTAINER_TREE_STORE (GIMP_CONTAINER_TREE_VIEW (item_view)->model);
|
||||
renderer = gimp_container_tree_store_get_renderer (store, iter);
|
||||
expanded_item = GIMP_ITEM (renderer->viewable);
|
||||
g_object_unref (renderer);
|
||||
|
||||
|
|
|
|||
|
|
@ -368,7 +368,8 @@ gimp_layer_tree_view_constructed (GObject *object)
|
|||
NULL);
|
||||
|
||||
gimp_container_tree_view_add_renderer_cell (tree_view,
|
||||
layer_view->priv->mask_cell);
|
||||
layer_view->priv->mask_cell,
|
||||
layer_view->priv->model_column_mask);
|
||||
|
||||
g_signal_connect (tree_view->renderer_cell, "clicked",
|
||||
G_CALLBACK (gimp_layer_tree_view_layer_clicked),
|
||||
|
|
@ -762,6 +763,32 @@ gimp_layer_tree_view_insert_item (GimpContainerView *view,
|
|||
|
||||
gimp_layer_tree_view_mask_update (layer_view, iter, layer);
|
||||
|
||||
if (GIMP_IS_LAYER (viewable) && gimp_layer_is_floating_sel (GIMP_LAYER (viewable)))
|
||||
{
|
||||
GimpContainerTreeView *tree_view = GIMP_CONTAINER_TREE_VIEW (view);
|
||||
GimpLayer *floating = GIMP_LAYER (viewable);
|
||||
GimpDrawable *drawable = gimp_layer_get_floating_sel_drawable (floating);
|
||||
|
||||
if (GIMP_IS_LAYER_MASK (drawable))
|
||||
{
|
||||
/* Display floating mask in the mask column. */
|
||||
GimpViewRenderer *renderer = NULL;
|
||||
|
||||
gtk_tree_model_get (GTK_TREE_MODEL (tree_view->model), iter,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, &renderer,
|
||||
-1);
|
||||
if (renderer)
|
||||
{
|
||||
gtk_tree_store_set (GTK_TREE_STORE (tree_view->model), iter,
|
||||
layer_view->priv->model_column_mask, renderer,
|
||||
layer_view->priv->model_column_mask_visible, TRUE,
|
||||
GIMP_CONTAINER_TREE_STORE_COLUMN_RENDERER, NULL,
|
||||
-1);
|
||||
g_object_unref (renderer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return iter;
|
||||
}
|
||||
|
||||
|
|
@ -1901,7 +1928,7 @@ gimp_layer_tree_view_update_borders (GimpLayerTreeView *layer_view,
|
|||
GimpContainerTreeView *tree_view = GIMP_CONTAINER_TREE_VIEW (layer_view);
|
||||
GimpViewRenderer *layer_renderer;
|
||||
GimpViewRenderer *mask_renderer;
|
||||
GimpLayer *layer;
|
||||
GimpLayer *layer = NULL;
|
||||
GimpLayerMask *mask = NULL;
|
||||
GimpViewBorderType layer_type = GIMP_VIEW_BORDER_BLACK;
|
||||
|
||||
|
|
@ -1910,15 +1937,25 @@ gimp_layer_tree_view_update_borders (GimpLayerTreeView *layer_view,
|
|||
layer_view->priv->model_column_mask, &mask_renderer,
|
||||
-1);
|
||||
|
||||
layer = GIMP_LAYER (layer_renderer->viewable);
|
||||
if (layer_renderer)
|
||||
layer = GIMP_LAYER (layer_renderer->viewable);
|
||||
else if (mask_renderer && GIMP_IS_LAYER (mask_renderer->viewable))
|
||||
/* This happens when floating masks are displayed (in the mask column).
|
||||
* In such a case, the mask_renderer will actually be a layer renderer
|
||||
* showing the floating mask.
|
||||
*/
|
||||
layer = GIMP_LAYER (mask_renderer->viewable);
|
||||
|
||||
if (mask_renderer)
|
||||
g_return_if_fail (layer != NULL);
|
||||
|
||||
if (mask_renderer && GIMP_IS_LAYER_MASK (mask_renderer->viewable))
|
||||
mask = GIMP_LAYER_MASK (mask_renderer->viewable);
|
||||
|
||||
if (! mask || (mask && ! gimp_layer_get_edit_mask (layer)))
|
||||
layer_type = GIMP_VIEW_BORDER_WHITE;
|
||||
|
||||
gimp_view_renderer_set_border_type (layer_renderer, layer_type);
|
||||
if (layer_renderer)
|
||||
gimp_view_renderer_set_border_type (layer_renderer, layer_type);
|
||||
|
||||
if (mask)
|
||||
{
|
||||
|
|
@ -1939,6 +1976,11 @@ gimp_layer_tree_view_update_borders (GimpLayerTreeView *layer_view,
|
|||
|
||||
gimp_view_renderer_set_border_type (mask_renderer, mask_color);
|
||||
}
|
||||
else if (mask_renderer)
|
||||
{
|
||||
/* Floating mask. */
|
||||
gimp_view_renderer_set_border_type (mask_renderer, GIMP_VIEW_BORDER_WHITE);
|
||||
}
|
||||
|
||||
if (layer_renderer)
|
||||
g_object_unref (layer_renderer);
|
||||
|
|
|
|||
Loading…
Reference in a new issue