mirror of https://github.com/GNOME/gimp.git
Factor out configuring the layer's mode node to a utility function
This commit is contained in:
parent
e4e7bf8471
commit
12ac8ce899
|
@ -173,6 +173,8 @@ static void gimp_layer_layer_mask_update (GimpDrawable *layer_mask,
|
||||||
gint height,
|
gint height,
|
||||||
GimpLayer *layer);
|
GimpLayer *layer);
|
||||||
|
|
||||||
|
static void gimp_layer_sync_mode_node (GimpLayer *layer);
|
||||||
|
|
||||||
|
|
||||||
G_DEFINE_TYPE_WITH_CODE (GimpLayer, gimp_layer, GIMP_TYPE_DRAWABLE,
|
G_DEFINE_TYPE_WITH_CODE (GimpLayer, gimp_layer, GIMP_TYPE_DRAWABLE,
|
||||||
G_IMPLEMENT_INTERFACE (GIMP_TYPE_PICKABLE,
|
G_IMPLEMENT_INTERFACE (GIMP_TYPE_PICKABLE,
|
||||||
|
@ -780,12 +782,9 @@ gimp_layer_get_node (GimpItem *item)
|
||||||
gegl_node_connect_to (layer->opacity_node, "output",
|
gegl_node_connect_to (layer->opacity_node, "output",
|
||||||
offset_node, "input");
|
offset_node, "input");
|
||||||
|
|
||||||
mode_node = gimp_drawable_get_mode_node (drawable);
|
gimp_layer_sync_mode_node (layer);
|
||||||
|
|
||||||
gegl_node_set (mode_node,
|
mode_node = gimp_drawable_get_mode_node (drawable);
|
||||||
"operation", "gimp:point-layer-mode",
|
|
||||||
"blend-mode", layer->mode,
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
gegl_node_connect_to (offset_node, "output",
|
gegl_node_connect_to (offset_node, "output",
|
||||||
mode_node, "aux");
|
mode_node, "aux");
|
||||||
|
@ -1016,6 +1015,22 @@ gimp_layer_layer_mask_update (GimpDrawable *drawable,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gimp_layer_sync_mode_node (GimpLayer *layer)
|
||||||
|
{
|
||||||
|
if (layer->opacity_node)
|
||||||
|
{
|
||||||
|
GeglNode *mode_node;
|
||||||
|
|
||||||
|
mode_node = gimp_drawable_get_mode_node (GIMP_DRAWABLE (layer));
|
||||||
|
|
||||||
|
gegl_node_set (mode_node,
|
||||||
|
"operation", "gimp:point-layer-mode",
|
||||||
|
"blend-mode", layer->mode,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* public functions */
|
/* public functions */
|
||||||
|
|
||||||
|
@ -2001,17 +2016,7 @@ gimp_layer_set_mode (GimpLayer *layer,
|
||||||
g_signal_emit (layer, layer_signals[MODE_CHANGED], 0);
|
g_signal_emit (layer, layer_signals[MODE_CHANGED], 0);
|
||||||
g_object_notify (G_OBJECT (layer), "mode");
|
g_object_notify (G_OBJECT (layer), "mode");
|
||||||
|
|
||||||
if (layer->opacity_node)
|
gimp_layer_sync_mode_node (layer);
|
||||||
{
|
|
||||||
GeglNode *mode_node;
|
|
||||||
|
|
||||||
mode_node = gimp_drawable_get_mode_node (GIMP_DRAWABLE (layer));
|
|
||||||
|
|
||||||
gegl_node_set (mode_node,
|
|
||||||
"operation", "gimp:point-layer-mode",
|
|
||||||
"blend-mode", layer->mode,
|
|
||||||
NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
gimp_drawable_update (GIMP_DRAWABLE (layer),
|
gimp_drawable_update (GIMP_DRAWABLE (layer),
|
||||||
0, 0,
|
0, 0,
|
||||||
|
|
Loading…
Reference in New Issue