]> granicus.if.org Git - imagemagick/commitdiff
Respect -loop option for animate -window
authorCristy <urban-warrior@imagemagick.org>
Wed, 22 Mar 2017 13:03:32 +0000 (09:03 -0400)
committerCristy <urban-warrior@imagemagick.org>
Wed, 22 Mar 2017 13:03:32 +0000 (09:03 -0400)
ChangeLog
MagickCore/animate.c

index 5c5d718ddcafc0e01dcb7a39332825e6e8da1c6c..18cbb662a6d5a4fa5c4d54621d5b3d3d9bad47d2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2017-03-21  7.0.5-4 Cristy  <quetzlzacatenango@image...>
+  * Respect -loop option for animate -window (reference
+    https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=31619).
+
 2017-03-17  7.0.5-3 Cristy  <quetzlzacatenango@image...>
   * Release ImageMagick version 7.0.5-3, GIT revision 19741:070c3fb:20170317.
 
index a6a1ef18f8dd20c516c5d78e5fa8844ee4362cf4..aaee765ac7c41b0ed5f693e179f601013b9ff2cb 100644 (file)
@@ -752,8 +752,12 @@ MagickExport void XAnimateBackgroundImage(Display *display,
     i;
 
   size_t
+    delay,
     number_scenes;
 
+  ssize_t
+    iterations;
+
   static XPixelInfo
     pixel;
 
@@ -770,9 +774,6 @@ MagickExport void XAnimateBackgroundImage(Display *display,
     height,
     width;
 
-  size_t
-    delay;
-
   Window
     root_window;
 
@@ -1138,6 +1139,7 @@ MagickExport void XAnimateBackgroundImage(Display *display,
   */
   (void) XSelectInput(display,window_info.id,SubstructureNotifyMask);
   event.type=Expose;
+  iterations=0;
   do
   {
     for (scene=0; scene < (int) number_scenes; scene++)
@@ -1158,6 +1160,9 @@ MagickExport void XAnimateBackgroundImage(Display *display,
         image_list[scene]->ticks_per_second,1L);
       XDelay(display,resources.delay*(delay == 0 ? 10 : delay));
     }
+    iterations++;
+    if (iterations == (ssize_t) image_list[0]->iterations)
+      break;
   } while (event.type != DestroyNotify);
   (void) XSync(display,MagickFalse);
   image_list=(Image **) RelinquishMagickMemory(image_list);