mirror of https://github.com/GNOME/gimp.git
app, pdb: use gimp_item_get_clip() everywhere
Remove the special clipping-mode handling for channels throughout the transform (and drawable-filter) code, and rather use gimp_item_get_clip(), added in the previous commit, instead. As mentioned in the previous commit, we only modify the clipping mode in top-level code, while having lower-level code use the clipping mode as-is. This not only hides the actual clipping-mode logic from the transform code, but, in particular, allows code performing transformation internally to use arbitrary clipping modes. Also, this commit fixes a bunch of PDB bugs all over the place :)
This commit is contained in:
parent
d5cdcc6c02
commit
33a389cd0c
|
@ -257,7 +257,8 @@ drawable_flip_cmd_callback (GimpAction *action,
|
|||
}
|
||||
else
|
||||
{
|
||||
gimp_item_flip (item, context, orientation, axis, FALSE);
|
||||
gimp_item_flip (item, context, orientation, axis,
|
||||
gimp_item_get_clip (item, FALSE));
|
||||
}
|
||||
|
||||
gimp_image_flush (image);
|
||||
|
@ -274,7 +275,6 @@ drawable_rotate_cmd_callback (GimpAction *action,
|
|||
GimpItem *item;
|
||||
gint off_x, off_y;
|
||||
gdouble center_x, center_y;
|
||||
gboolean clip_result = FALSE;
|
||||
GimpRotationType rotation_type;
|
||||
return_if_no_drawable (image, drawable, data);
|
||||
return_if_no_context (context, data);
|
||||
|
@ -288,9 +288,6 @@ drawable_rotate_cmd_callback (GimpAction *action,
|
|||
center_x = ((gdouble) off_x + (gdouble) gimp_item_get_width (item) / 2.0);
|
||||
center_y = ((gdouble) off_y + (gdouble) gimp_item_get_height (item) / 2.0);
|
||||
|
||||
if (GIMP_IS_CHANNEL (item))
|
||||
clip_result = TRUE;
|
||||
|
||||
if (gimp_item_get_linked (item))
|
||||
{
|
||||
gimp_item_linked_rotate (item, context, rotation_type,
|
||||
|
@ -298,8 +295,9 @@ drawable_rotate_cmd_callback (GimpAction *action,
|
|||
}
|
||||
else
|
||||
{
|
||||
gimp_item_rotate (item, context, rotation_type,
|
||||
center_x, center_y, clip_result);
|
||||
gimp_item_rotate (item, context,
|
||||
rotation_type, center_x, center_y,
|
||||
gimp_item_get_clip (item, FALSE));
|
||||
}
|
||||
|
||||
gimp_image_flush (image);
|
||||
|
|
|
@ -111,24 +111,6 @@ static void gimp_channel_resize (GimpItem *item,
|
|||
gint new_height,
|
||||
gint offset_x,
|
||||
gint offset_y);
|
||||
static void gimp_channel_flip (GimpItem *item,
|
||||
GimpContext *context,
|
||||
GimpOrientationType flip_type,
|
||||
gdouble axis,
|
||||
gboolean flip_result);
|
||||
static void gimp_channel_rotate (GimpItem *item,
|
||||
GimpContext *context,
|
||||
GimpRotationType flip_type,
|
||||
gdouble center_x,
|
||||
gdouble center_y,
|
||||
gboolean flip_result);
|
||||
static void gimp_channel_transform (GimpItem *item,
|
||||
GimpContext *context,
|
||||
const GimpMatrix3 *matrix,
|
||||
GimpTransformDirection direction,
|
||||
GimpInterpolationType interpolation_type,
|
||||
GimpTransformResize clip_result,
|
||||
GimpProgress *progress);
|
||||
static GimpTransformResize
|
||||
gimp_channel_get_clip (GimpItem *item,
|
||||
GimpTransformResize clip_result);
|
||||
|
@ -267,9 +249,6 @@ gimp_channel_class_init (GimpChannelClass *klass)
|
|||
item_class->translate = gimp_channel_translate;
|
||||
item_class->scale = gimp_channel_scale;
|
||||
item_class->resize = gimp_channel_resize;
|
||||
item_class->flip = gimp_channel_flip;
|
||||
item_class->rotate = gimp_channel_rotate;
|
||||
item_class->transform = gimp_channel_transform;
|
||||
item_class->get_clip = gimp_channel_get_clip;
|
||||
item_class->fill = gimp_channel_fill;
|
||||
item_class->stroke = gimp_channel_stroke;
|
||||
|
@ -775,53 +754,6 @@ gimp_channel_resize (GimpItem *item,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_channel_flip (GimpItem *item,
|
||||
GimpContext *context,
|
||||
GimpOrientationType flip_type,
|
||||
gdouble axis,
|
||||
gboolean clip_result)
|
||||
{
|
||||
if (G_TYPE_FROM_INSTANCE (item) == GIMP_TYPE_CHANNEL)
|
||||
clip_result = TRUE;
|
||||
|
||||
GIMP_ITEM_CLASS (parent_class)->flip (item, context, flip_type, axis,
|
||||
clip_result);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_channel_rotate (GimpItem *item,
|
||||
GimpContext *context,
|
||||
GimpRotationType rotate_type,
|
||||
gdouble center_x,
|
||||
gdouble center_y,
|
||||
gboolean clip_result)
|
||||
{
|
||||
/* don't default to clip_result == TRUE here */
|
||||
|
||||
GIMP_ITEM_CLASS (parent_class)->rotate (item, context,
|
||||
rotate_type, center_x, center_y,
|
||||
clip_result);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_channel_transform (GimpItem *item,
|
||||
GimpContext *context,
|
||||
const GimpMatrix3 *matrix,
|
||||
GimpTransformDirection direction,
|
||||
GimpInterpolationType interpolation_type,
|
||||
GimpTransformResize clip_result,
|
||||
GimpProgress *progress)
|
||||
{
|
||||
if (G_TYPE_FROM_INSTANCE (item) == GIMP_TYPE_CHANNEL)
|
||||
clip_result = TRUE;
|
||||
|
||||
GIMP_ITEM_CLASS (parent_class)->transform (item, context, matrix, direction,
|
||||
interpolation_type,
|
||||
clip_result,
|
||||
progress);
|
||||
}
|
||||
|
||||
static GimpTransformResize
|
||||
gimp_channel_get_clip (GimpItem *item,
|
||||
GimpTransformResize clip_result)
|
||||
|
|
|
@ -64,41 +64,6 @@
|
|||
|
||||
/* public functions */
|
||||
|
||||
GimpTransformResize
|
||||
gimp_drawable_transform_get_effective_clip (GimpDrawable *drawable,
|
||||
GeglBuffer *orig_buffer,
|
||||
GimpTransformResize clip_result)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_DRAWABLE (drawable), clip_result);
|
||||
g_return_val_if_fail (gimp_item_is_attached (GIMP_ITEM (drawable)),
|
||||
clip_result);
|
||||
g_return_val_if_fail (orig_buffer == NULL || GEGL_IS_BUFFER (orig_buffer),
|
||||
clip_result);
|
||||
|
||||
/* Always clip unfloated buffers since they must keep their size */
|
||||
if (GIMP_IS_CHANNEL (drawable))
|
||||
{
|
||||
if (orig_buffer)
|
||||
{
|
||||
if (! babl_format_has_alpha (gegl_buffer_get_format (orig_buffer)))
|
||||
clip_result = GIMP_TRANSFORM_RESIZE_CLIP;
|
||||
}
|
||||
else
|
||||
{
|
||||
GimpImage *image = gimp_item_get_image (GIMP_ITEM (drawable));
|
||||
GimpChannel *mask = gimp_image_get_mask (image);
|
||||
|
||||
if (GIMP_CHANNEL (drawable) == mask ||
|
||||
gimp_channel_is_empty (mask))
|
||||
{
|
||||
clip_result = GIMP_TRANSFORM_RESIZE_CLIP;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return clip_result;
|
||||
}
|
||||
|
||||
GeglBuffer *
|
||||
gimp_drawable_transform_buffer_affine (GimpDrawable *drawable,
|
||||
GimpContext *context,
|
||||
|
@ -146,17 +111,6 @@ gimp_drawable_transform_buffer_affine (GimpDrawable *drawable,
|
|||
u2 = u1 + gegl_buffer_get_width (orig_buffer);
|
||||
v2 = v1 + gegl_buffer_get_height (orig_buffer);
|
||||
|
||||
/* Don't modify the clipping mode of layer masks here, so that,
|
||||
* when transformed together with their layer, they match the
|
||||
* layer's clipping mode.
|
||||
*/
|
||||
if (G_TYPE_FROM_INSTANCE (drawable) == GIMP_TYPE_CHANNEL)
|
||||
{
|
||||
clip_result = gimp_drawable_transform_get_effective_clip (drawable,
|
||||
orig_buffer,
|
||||
clip_result);
|
||||
}
|
||||
|
||||
/* Find the bounding coordinates of target */
|
||||
gimp_transform_resize_boundary (&m, clip_result,
|
||||
u1, v1, u2, v2,
|
||||
|
@ -788,10 +742,6 @@ gimp_drawable_transform_affine (GimpDrawable *drawable,
|
|||
gint new_offset_y;
|
||||
GimpColorProfile *profile;
|
||||
|
||||
clip_result = gimp_drawable_transform_get_effective_clip (drawable,
|
||||
orig_buffer,
|
||||
clip_result);
|
||||
|
||||
/* also transform the mask if we are transforming an entire layer */
|
||||
if (GIMP_IS_LAYER (drawable) &&
|
||||
gimp_layer_get_mask (GIMP_LAYER (drawable)) &&
|
||||
|
@ -876,11 +826,6 @@ gimp_drawable_transform_flip (GimpDrawable *drawable,
|
|||
gint new_offset_y;
|
||||
GimpColorProfile *profile;
|
||||
|
||||
/* always clip unfloated buffers so they keep their size */
|
||||
if (GIMP_IS_CHANNEL (drawable) &&
|
||||
! babl_format_has_alpha (gegl_buffer_get_format (orig_buffer)))
|
||||
clip_result = TRUE;
|
||||
|
||||
/* also transform the mask if we are transforming an entire layer */
|
||||
if (GIMP_IS_LAYER (drawable) &&
|
||||
gimp_layer_get_mask (GIMP_LAYER (drawable)) &&
|
||||
|
@ -961,11 +906,6 @@ gimp_drawable_transform_rotate (GimpDrawable *drawable,
|
|||
gint new_offset_y;
|
||||
GimpColorProfile *profile;
|
||||
|
||||
/* always clip unfloated buffers so they keep their size */
|
||||
if (GIMP_IS_CHANNEL (drawable) &&
|
||||
! babl_format_has_alpha (gegl_buffer_get_format (orig_buffer)))
|
||||
clip_result = TRUE;
|
||||
|
||||
/* also transform the mask if we are transforming an entire layer */
|
||||
if (GIMP_IS_LAYER (drawable) &&
|
||||
gimp_layer_get_mask (GIMP_LAYER (drawable)) &&
|
||||
|
|
|
@ -19,10 +19,6 @@
|
|||
#define __GIMP_DRAWABLE_TRANSFORM_H__
|
||||
|
||||
|
||||
GimpTransformResize gimp_drawable_transform_get_effective_clip (GimpDrawable *drawable,
|
||||
GeglBuffer *orig_buffer,
|
||||
GimpTransformResize clip_result);
|
||||
|
||||
GeglBuffer * gimp_drawable_transform_buffer_affine (GimpDrawable *drawable,
|
||||
GimpContext *context,
|
||||
GeglBuffer *orig_buffer,
|
||||
|
|
|
@ -505,13 +505,9 @@ static void
|
|||
gimp_drawable_filter_sync_clip (GimpDrawableFilter *filter,
|
||||
gboolean sync_region)
|
||||
{
|
||||
gboolean clip = filter->clip;
|
||||
gboolean clip;
|
||||
|
||||
if (! clip)
|
||||
{
|
||||
if (! GIMP_IS_LAYER (filter->drawable))
|
||||
clip = TRUE;
|
||||
}
|
||||
clip = gimp_item_get_clip (GIMP_ITEM (filter->drawable), filter->clip);
|
||||
|
||||
if (! clip)
|
||||
{
|
||||
|
|
|
@ -161,8 +161,13 @@ gimp_image_item_list_flip (GimpImage *image,
|
|||
}
|
||||
|
||||
for (l = list; l; l = g_list_next (l))
|
||||
gimp_item_flip (GIMP_ITEM (l->data), context,
|
||||
flip_type, axis, clip_result);
|
||||
{
|
||||
GimpItem *item = l->data;
|
||||
|
||||
gimp_item_flip (item, context,
|
||||
flip_type, axis,
|
||||
gimp_item_get_clip (item, clip_result));
|
||||
}
|
||||
|
||||
if (list->next)
|
||||
{
|
||||
|
@ -200,8 +205,13 @@ gimp_image_item_list_rotate (GimpImage *image,
|
|||
}
|
||||
|
||||
for (l = list; l; l = g_list_next (l))
|
||||
gimp_item_rotate (GIMP_ITEM (l->data), context,
|
||||
rotate_type, center_x, center_y, clip_result);
|
||||
{
|
||||
GimpItem *item = l->data;
|
||||
|
||||
gimp_item_rotate (item, context,
|
||||
rotate_type, center_x, center_y,
|
||||
gimp_item_get_clip (item, clip_result));
|
||||
}
|
||||
|
||||
if (list->next)
|
||||
{
|
||||
|
@ -251,13 +261,16 @@ gimp_image_item_list_transform (GimpImage *image,
|
|||
|
||||
for (l = list; l; l = g_list_next (l))
|
||||
{
|
||||
GimpItem *item = l->data;
|
||||
|
||||
if (queue)
|
||||
gimp_object_queue_pop (queue);
|
||||
|
||||
gimp_item_transform (GIMP_ITEM (l->data), context,
|
||||
gimp_item_transform (item, context,
|
||||
matrix, direction,
|
||||
interpolation_type,
|
||||
clip_result, progress);
|
||||
gimp_item_get_clip (item, clip_result),
|
||||
progress);
|
||||
}
|
||||
|
||||
if (list->next)
|
||||
|
|
|
@ -134,7 +134,6 @@ gimp_item_linked_rotate (GimpItem *item,
|
|||
{
|
||||
GimpImage *image;
|
||||
GList *items;
|
||||
GList *channels;
|
||||
|
||||
g_return_if_fail (GIMP_IS_ITEM (item));
|
||||
g_return_if_fail (GIMP_IS_CONTEXT (context));
|
||||
|
@ -144,30 +143,14 @@ gimp_item_linked_rotate (GimpItem *item,
|
|||
image = gimp_item_get_image (item);
|
||||
|
||||
items = gimp_image_item_list_get_list (image,
|
||||
GIMP_ITEM_TYPE_LAYERS |
|
||||
GIMP_ITEM_TYPE_VECTORS,
|
||||
GIMP_ITEM_TYPE_ALL,
|
||||
GIMP_ITEM_SET_LINKED);
|
||||
items = gimp_image_item_list_filter (items);
|
||||
|
||||
channels = gimp_image_item_list_get_list (image,
|
||||
GIMP_ITEM_TYPE_CHANNELS,
|
||||
GIMP_ITEM_SET_LINKED);
|
||||
channels = gimp_image_item_list_filter (channels);
|
||||
|
||||
if (items && channels)
|
||||
gimp_image_undo_group_start (image, GIMP_UNDO_GROUP_TRANSFORM,
|
||||
C_("undo-type", "Rotate Items"));
|
||||
|
||||
gimp_image_item_list_rotate (image, items, context,
|
||||
rotate_type, center_x, center_y, clip_result);
|
||||
gimp_image_item_list_rotate (image, channels, context,
|
||||
rotate_type, center_x, center_y, TRUE);
|
||||
|
||||
if (items && channels)
|
||||
gimp_image_undo_group_end (image);
|
||||
|
||||
g_list_free (items);
|
||||
g_list_free (channels);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -159,7 +159,8 @@ item_transform_flip_simple_invoker (GimpProcedure *procedure,
|
|||
{
|
||||
gimp_item_flip (item, context,
|
||||
flip_type, axis,
|
||||
pdb_context->transform_resize);
|
||||
gimp_item_get_clip (
|
||||
item, pdb_context->transform_resize));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -252,7 +253,8 @@ item_transform_flip_invoker (GimpProcedure *procedure,
|
|||
gimp_item_transform (item, context, &matrix,
|
||||
pdb_context->transform_direction,
|
||||
pdb_context->interpolation,
|
||||
pdb_context->transform_resize,
|
||||
gimp_item_get_clip (
|
||||
item, pdb_context->transform_resize),
|
||||
progress);
|
||||
}
|
||||
|
||||
|
@ -360,7 +362,8 @@ item_transform_perspective_invoker (GimpProcedure *procedure,
|
|||
gimp_item_transform (item, context, &matrix,
|
||||
pdb_context->transform_direction,
|
||||
pdb_context->interpolation,
|
||||
pdb_context->transform_resize,
|
||||
gimp_item_get_clip (
|
||||
item, pdb_context->transform_resize),
|
||||
progress);
|
||||
}
|
||||
|
||||
|
@ -450,7 +453,8 @@ item_transform_rotate_simple_invoker (GimpProcedure *procedure,
|
|||
gimp_item_rotate (item, context,
|
||||
rotate_type,
|
||||
center_x, center_y,
|
||||
pdb_context->transform_resize);
|
||||
gimp_item_get_clip (
|
||||
item, pdb_context->transform_resize));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -548,7 +552,8 @@ item_transform_rotate_invoker (GimpProcedure *procedure,
|
|||
gimp_item_transform (item, context, &matrix,
|
||||
pdb_context->transform_direction,
|
||||
pdb_context->interpolation,
|
||||
pdb_context->transform_resize,
|
||||
gimp_item_get_clip (
|
||||
item, pdb_context->transform_resize),
|
||||
progress);
|
||||
}
|
||||
|
||||
|
@ -648,7 +653,8 @@ item_transform_scale_invoker (GimpProcedure *procedure,
|
|||
gimp_item_transform (item, context, &matrix,
|
||||
pdb_context->transform_direction,
|
||||
pdb_context->interpolation,
|
||||
pdb_context->transform_resize,
|
||||
gimp_item_get_clip (
|
||||
item, pdb_context->transform_resize),
|
||||
progress);
|
||||
}
|
||||
|
||||
|
@ -743,7 +749,8 @@ item_transform_shear_invoker (GimpProcedure *procedure,
|
|||
gimp_item_transform (item, context, &matrix,
|
||||
pdb_context->transform_direction,
|
||||
pdb_context->interpolation,
|
||||
pdb_context->transform_resize,
|
||||
gimp_item_get_clip (
|
||||
item, pdb_context->transform_resize),
|
||||
progress);
|
||||
}
|
||||
|
||||
|
@ -849,7 +856,8 @@ item_transform_2d_invoker (GimpProcedure *procedure,
|
|||
gimp_item_transform (item, context, &matrix,
|
||||
pdb_context->transform_direction,
|
||||
pdb_context->interpolation,
|
||||
pdb_context->transform_resize,
|
||||
gimp_item_get_clip (
|
||||
item, pdb_context->transform_resize),
|
||||
progress);
|
||||
}
|
||||
|
||||
|
@ -963,7 +971,8 @@ item_transform_matrix_invoker (GimpProcedure *procedure,
|
|||
gimp_item_transform (item, context, &matrix,
|
||||
pdb_context->transform_direction,
|
||||
pdb_context->interpolation,
|
||||
pdb_context->transform_resize,
|
||||
gimp_item_get_clip (
|
||||
item, pdb_context->transform_resize),
|
||||
progress);
|
||||
}
|
||||
|
||||
|
|
|
@ -1147,7 +1147,7 @@ gimp_filter_tool_update_dialog (GimpFilterTool *filter_tool)
|
|||
{
|
||||
gtk_widget_set_visible (
|
||||
filter_tool->clip_combo,
|
||||
GIMP_IS_LAYER (tool->drawable) &&
|
||||
gimp_item_get_clip (GIMP_ITEM (tool->drawable), FALSE) == FALSE &&
|
||||
! gimp_gegl_node_is_point_operation (filter_tool->operation));
|
||||
|
||||
gtk_widget_hide (filter_tool->region_combo);
|
||||
|
|
|
@ -371,16 +371,9 @@ gimp_flip_tool_transform (GimpTransformTool *tr_tool,
|
|||
if (orig_buffer)
|
||||
{
|
||||
/* this happens when transforming a selection cut out of a
|
||||
* normal drawable, or the selection
|
||||
* normal drawable
|
||||
*/
|
||||
|
||||
/* always clip the selection and unfloated channels
|
||||
* so they keep their size
|
||||
*/
|
||||
if (GIMP_IS_CHANNEL (active_item) &&
|
||||
! babl_format_has_alpha (gegl_buffer_get_format (orig_buffer)))
|
||||
clip_result = TRUE;
|
||||
|
||||
ret = gimp_drawable_transform_buffer_flip (GIMP_DRAWABLE (active_item),
|
||||
context,
|
||||
orig_buffer,
|
||||
|
@ -396,11 +389,6 @@ gimp_flip_tool_transform (GimpTransformTool *tr_tool,
|
|||
{
|
||||
/* this happens for entire drawables, paths and layer groups */
|
||||
|
||||
/* always clip layer masks so they keep their size
|
||||
*/
|
||||
if (GIMP_IS_CHANNEL (active_item))
|
||||
clip_result = TRUE;
|
||||
|
||||
if (gimp_item_get_linked (active_item))
|
||||
{
|
||||
gimp_item_linked_flip (active_item, context,
|
||||
|
@ -408,6 +396,8 @@ gimp_flip_tool_transform (GimpTransformTool *tr_tool,
|
|||
}
|
||||
else
|
||||
{
|
||||
clip_result = gimp_item_get_clip (active_item, clip_result);
|
||||
|
||||
gimp_item_flip (active_item, context,
|
||||
flip_type, axis, clip_result);
|
||||
}
|
||||
|
|
|
@ -149,16 +149,9 @@ gimp_transform_tool_real_transform (GimpTransformTool *tr_tool,
|
|||
if (orig_buffer)
|
||||
{
|
||||
/* this happens when transforming a selection cut out of a
|
||||
* normal drawable, or the selection
|
||||
* normal drawable
|
||||
*/
|
||||
|
||||
/* always clip the selection and unfloated channels
|
||||
* so they keep their size
|
||||
*/
|
||||
if (GIMP_IS_CHANNEL (active_item) &&
|
||||
! babl_format_has_alpha (gegl_buffer_get_format (orig_buffer)))
|
||||
clip = GIMP_TRANSFORM_RESIZE_CLIP;
|
||||
|
||||
ret = gimp_drawable_transform_buffer_affine (GIMP_DRAWABLE (active_item),
|
||||
context,
|
||||
orig_buffer,
|
||||
|
@ -188,10 +181,7 @@ gimp_transform_tool_real_transform (GimpTransformTool *tr_tool,
|
|||
}
|
||||
else
|
||||
{
|
||||
/* always clip layer masks so they keep their size
|
||||
*/
|
||||
if (GIMP_IS_CHANNEL (active_item))
|
||||
clip = GIMP_TRANSFORM_RESIZE_CLIP;
|
||||
clip = gimp_item_get_clip (active_item, clip);
|
||||
|
||||
gimp_item_transform (active_item, context,
|
||||
&tr_tool->transform,
|
||||
|
@ -271,14 +261,13 @@ gimp_transform_tool_confirm (GimpTransformTool *tr_tool,
|
|||
|
||||
orig_bounds.width = gimp_item_get_width (item);
|
||||
orig_bounds.height = gimp_item_get_height (item);
|
||||
|
||||
clip = gimp_item_get_clip (item, clip);
|
||||
}
|
||||
else
|
||||
{
|
||||
orig_bounds = selection_bounds;
|
||||
}
|
||||
|
||||
clip = gimp_drawable_transform_get_effective_clip (
|
||||
GIMP_DRAWABLE (item), NULL, clip);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -286,7 +275,7 @@ gimp_transform_tool_confirm (GimpTransformTool *tr_tool,
|
|||
&orig_bounds.x, &orig_bounds.y,
|
||||
&orig_bounds.width, &orig_bounds.height);
|
||||
|
||||
clip = GIMP_TRANSFORM_RESIZE_ADJUST;
|
||||
clip = gimp_item_get_clip (item, clip);
|
||||
}
|
||||
|
||||
gimp_transform_resize_boundary (&transform, clip,
|
||||
|
@ -692,9 +681,6 @@ gimp_transform_tool_transform (GimpTransformTool *tr_tool,
|
|||
break;
|
||||
|
||||
case GIMP_TRANSFORM_TYPE_SELECTION:
|
||||
orig_buffer = g_object_ref (gimp_drawable_get_buffer (GIMP_DRAWABLE (active_item)));
|
||||
break;
|
||||
|
||||
case GIMP_TRANSFORM_TYPE_PATH:
|
||||
break;
|
||||
}
|
||||
|
@ -729,17 +715,7 @@ gimp_transform_tool_transform (GimpTransformTool *tr_tool,
|
|||
}
|
||||
break;
|
||||
|
||||
case GIMP_TRANSFORM_TYPE_SELECTION:
|
||||
if (new_buffer)
|
||||
{
|
||||
gimp_channel_push_undo (GIMP_CHANNEL (active_item), NULL);
|
||||
|
||||
gimp_drawable_set_buffer (GIMP_DRAWABLE (active_item),
|
||||
FALSE, NULL, new_buffer);
|
||||
g_object_unref (new_buffer);
|
||||
}
|
||||
break;
|
||||
|
||||
case GIMP_TRANSFORM_TYPE_SELECTION:
|
||||
case GIMP_TRANSFORM_TYPE_PATH:
|
||||
/* Nothing to be done */
|
||||
break;
|
||||
|
|
|
@ -92,7 +92,8 @@ $assemble_matrix
|
|||
gimp_item_transform (item, context, &matrix,
|
||||
pdb_context->transform_direction,
|
||||
pdb_context->interpolation,
|
||||
pdb_context->transform_resize,
|
||||
gimp_item_get_clip (
|
||||
item, pdb_context->transform_resize),
|
||||
progress);
|
||||
}
|
||||
|
||||
|
@ -256,7 +257,8 @@ HELP
|
|||
{
|
||||
gimp_item_flip (item, context,
|
||||
flip_type, axis,
|
||||
pdb_context->transform_resize);
|
||||
gimp_item_get_clip (
|
||||
item, pdb_context->transform_resize));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -507,7 +509,8 @@ HELP
|
|||
gimp_item_rotate (item, context,
|
||||
rotate_type,
|
||||
center_x, center_y,
|
||||
pdb_context->transform_resize);
|
||||
gimp_item_get_clip (
|
||||
item, pdb_context->transform_resize));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue