diff --git a/ChangeLog b/ChangeLog index 8629ec48e1..a33876e802 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-11-03 Martin Nordholts + + * app/core/gimpitem.c: Instantiate offset_node on-demand. + + * app/core/gimpdrawable.c: Use gimp_item_set_offset(). + 2008-11-03 Michael Natterer * app/core/gimpitem.[ch]: renamed @@ -31,8 +37,8 @@ 2008-11-02 Martin Nordholts - * app/core/gimpitem.c (gimp_item_set_offsets): New function that - sets the offset of the item and also keeps the offset_node in + * app/core/gimpitem.[ch] (gimp_item_set_offsets): New function + that sets the offset of the item and also keeps the offset_node in sync. * app/core/gimpdrawable.c (gimp_drawable_real_set_tiles): Use the diff --git a/app/core/gimpdrawable.c b/app/core/gimpdrawable.c index 3717a8d972..c5c88a47b2 100644 --- a/app/core/gimpdrawable.c +++ b/app/core/gimpdrawable.c @@ -748,7 +748,7 @@ gimp_drawable_real_set_tiles (GimpDrawable *drawable, drawable->bytes = tile_manager_bpp (tiles); drawable->has_alpha = GIMP_IMAGE_TYPE_HAS_ALPHA (type); - gimp_item_set_offsets (item, offset_x, offset_y); + gimp_item_set_offset (item, offset_x, offset_y); if (gimp_item_width (item) != tile_manager_width (tiles) || gimp_item_height (item) != tile_manager_height (tiles)) diff --git a/app/core/gimpitem.c b/app/core/gimpitem.c index 4bbf6c8d43..40bc09253e 100644 --- a/app/core/gimpitem.c +++ b/app/core/gimpitem.c @@ -454,11 +454,6 @@ gimp_item_real_get_node (GimpItem *item) { item->node = gegl_node_new (); - item->offset_node = gegl_node_new_child (item->node, - "operation", "gegl:shift", - "x", (gdouble) item->offset_x, - "y", (gdouble) item->offset_y, - NULL); return item->node; } @@ -693,7 +688,7 @@ gimp_item_height (const GimpItem *item) } /** - * gimp_item_get_offsets: + * gimp_item_get_offset: * @item: The #GimpItem to check. * @offset_x: Return location for the item's X offset. * @offset_y: Return location for the item's Y offset. @@ -1141,7 +1136,15 @@ gimp_item_get_offset_node (GimpItem *item) g_return_val_if_fail (GIMP_IS_ITEM (item), NULL); if (! item->offset_node) - gimp_item_get_node (item); + { + GeglNode *node = gimp_item_get_node (item); + + item->offset_node = gegl_node_new_child (node, + "operation", "gegl:shift", + "x", (gdouble) item->offset_x, + "y", (gdouble) item->offset_y, + NULL); + } return item->offset_node; }