[gimp/gimp-2-10] app: handle buffers with arbitrary origin in gimp_layer_new_from_gegl_buffer()
- From: Ell <ell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gimp-2-10] app: handle buffers with arbitrary origin in gimp_layer_new_from_gegl_buffer()
- Date: Thu, 19 Sep 2019 17:26:49 +0000 (UTC)
commit 7132dd035597137e9f185074050c73ffc1ade9cd
Author: Ell <ell_se yahoo com>
Date: Thu Sep 19 19:39:29 2019 +0300
app: handle buffers with arbitrary origin in gimp_layer_new_from_gegl_buffer()
... by translating the layer according to the buffer's origin.
(cherry picked from commit 6ef21ed1f0fb9dabb1398ca401249e7551cab112)
app/core/gimplayer-new.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/app/core/gimplayer-new.c b/app/core/gimplayer-new.c
index ee031b37e2..7ea2450608 100644
--- a/app/core/gimplayer-new.c
+++ b/app/core/gimplayer-new.c
@@ -130,7 +130,8 @@ gimp_layer_new_from_gegl_buffer (GeglBuffer *buffer,
GimpLayerMode mode,
GimpColorProfile *buffer_profile)
{
- GimpLayer *layer;
+ GimpLayer *layer;
+ const GeglRectangle *extent;
g_return_val_if_fail (GEGL_IS_BUFFER (buffer), NULL);
g_return_val_if_fail (GIMP_IS_IMAGE (dest_image), NULL);
@@ -138,15 +139,19 @@ gimp_layer_new_from_gegl_buffer (GeglBuffer *buffer,
g_return_val_if_fail (buffer_profile == NULL ||
GIMP_IS_COLOR_PROFILE (buffer_profile), NULL);
+ extent = gegl_buffer_get_extent (buffer);
+
/* do *not* use the buffer's format because this function gets
* buffers of any format passed, and converts them
*/
layer = gimp_layer_new (dest_image,
- gegl_buffer_get_width (buffer),
- gegl_buffer_get_height (buffer),
+ extent->width, extent->height,
format,
name, opacity, mode);
+ if (extent->x != 0 || extent->y != 0)
+ gimp_item_translate (GIMP_ITEM (layer), extent->x, extent->y, FALSE);
+
gimp_layer_new_convert_buffer (layer, buffer, buffer_profile, NULL);
return layer;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]