[gimp] plug-ins: get rid of gimp_image_(s|g)et_active_layer().



commit 72d1f9cb6d8c27014a05812d7fd36a8e213d0345
Author: Jehan <jehan girinstud io>
Date:   Wed Feb 24 12:09:15 2021 +0100

    plug-ins: get rid of gimp_image_(s|g)et_active_layer().
    
    No more usage of the single active layer concept in existing plug-in
    code.

 plug-ins/common/warp.c               |  8 ++++----
 plug-ins/file-dds/ddsread.c          |  3 +--
 plug-ins/file-psd/psd-load.c         | 16 +---------------
 plug-ins/screenshot/screenshot-x11.c |  6 +++---
 4 files changed, 9 insertions(+), 24 deletions(-)
---
diff --git a/plug-ins/common/warp.c b/plug-ins/common/warp.c
index 82bb2600c9..465caef59a 100644
--- a/plug-ins/common/warp.c
+++ b/plug-ins/common/warp.c
@@ -1004,7 +1004,7 @@ diff (GimpDrawable  *drawable,
   GimpDrawable *gdraw;
   GimpImage    *image;              /* image holding X and Y diff. arrays */
   GimpImage    *new_image;          /* image holding X and Y diff. layers */
-  GimpLayer    *layer_active;          /* currently active layer */
+  GList        *selected_layers;    /* currently selected layers          */
   GimpLayer    *xlayer;
   GimpLayer    *ylayer;  /* individual X and Y layer ID numbers */
   GeglBuffer   *src_buffer;
@@ -1088,8 +1088,8 @@ diff (GimpDrawable  *drawable,
         16-bit pixel value. This is either clever, or a kluge,
         depending on your point of view.  */
 
-  image        = gimp_item_get_image (GIMP_ITEM (drawable));
-  layer_active = gimp_image_get_active_layer (image);
+  image           = gimp_item_get_image (GIMP_ITEM (drawable));
+  selected_layers = gimp_image_list_selected_layers (image);
 
   /* create new image for X,Y diff */
   new_image = gimp_image_new (width, height, GIMP_RGB);
@@ -1113,7 +1113,7 @@ diff (GimpDrawable  *drawable,
   gimp_image_insert_layer (new_image, ylayer, NULL, 1);
   gimp_drawable_fill (GIMP_DRAWABLE (xlayer), GIMP_FILL_BACKGROUND);
   gimp_drawable_fill (GIMP_DRAWABLE (ylayer), GIMP_FILL_BACKGROUND);
-  gimp_image_set_active_layer (image, layer_active);
+  gimp_image_take_selected_layers (image, selected_layers);
 
   dest_format = get_u8_format (draw_xd);
   dest_bytes  = babl_format_get_bytes_per_pixel (dest_format);
diff --git a/plug-ins/file-dds/ddsread.c b/plug-ins/file-dds/ddsread.c
index 9687ef9447..35bd396944 100644
--- a/plug-ins/file-dds/ddsread.c
+++ b/plug-ins/file-dds/ddsread.c
@@ -526,8 +526,7 @@ read_dds (GFile          *file,
       return GIMP_PDB_EXECUTION_ERROR;
     }
 
-  gimp_image_set_active_layer (image, layers->data);
-  g_list_free (layers);
+  gimp_image_take_selected_layers (image, layers);
 
   *ret_image = image;
 
diff --git a/plug-ins/file-psd/psd-load.c b/plug-ins/file-psd/psd-load.c
index 0a50660c01..d084334a80 100644
--- a/plug-ins/file-psd/psd-load.c
+++ b/plug-ins/file-psd/psd-load.c
@@ -1859,21 +1859,7 @@ add_layers (GimpImage *image,
   g_array_free (parent_group_stack, FALSE);
 
   /* Set the selected layers */
-  if (selected_layers)
-    {
-      GimpLayer **sel_layers;
-      GList      *list;
-      gint        i;
-
-      sel_layers = g_new0 (GimpLayer *, g_list_length (selected_layers));
-      for (list = selected_layers, i = 0; list; list = list->next, i++)
-        sel_layers[i] = list->data;
-      gimp_image_set_selected_layers (image, g_list_length (selected_layers),
-                                      (const GimpLayer **) sel_layers);
-
-      g_list_free (selected_layers);
-      g_free (sel_layers);
-    }
+  gimp_image_take_selected_layers (image, selected_layers);
   g_list_free (img_a->layer_selection);
 
   return 0;
diff --git a/plug-ins/screenshot/screenshot-x11.c b/plug-ins/screenshot/screenshot-x11.c
index 46437ba9c2..6769c577d2 100644
--- a/plug-ins/screenshot/screenshot-x11.c
+++ b/plug-ins/screenshot/screenshot-x11.c
@@ -456,14 +456,14 @@ add_cursor_image (GimpImage  *image,
   GeglBufferIterator *iter;
   GeglRectangle      *roi;
   GimpLayer          *layer;
-  GimpLayer          *active;
+  GList              *selected;
 
   cursor = XFixesGetCursorImage (GDK_DISPLAY_XDISPLAY (display));
 
   if (!cursor)
     return;
 
-  active = gimp_image_get_active_layer (image);
+  selected = gimp_image_list_selected_layers (image);
 
   layer = gimp_layer_new (image, _("Mouse Pointer"),
                           cursor->width, cursor->height,
@@ -520,7 +520,7 @@ add_cursor_image (GimpImage  *image,
   gimp_layer_set_offsets (layer,
                           cursor->x - cursor->xhot, cursor->y - cursor->yhot);
 
-  gimp_image_set_active_layer (image, active);
+  gimp_image_take_selected_layers (image, selected);
 #endif
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]