Mergin several old merge requests
[geeqie.git] / src / slideshow.c
index 04d207f..c729eb4 100644 (file)
@@ -1,16 +1,24 @@
 /*
- * Geeqie
- * (C) 2004 John Ellis
- * Copyright (C) 2008 - 2010 The Geeqie Team
+ * Copyright (C) 2004 John Ellis
+ * Copyright (C) 2008 - 2016 The Geeqie Team
  *
  * Author: John Ellis
  *
- * This software is released under the GNU General Public License (GNU GPL).
- * Please read the included file COPYING for more information.
- * This software comes with no warranty of any kind, use at your own risk!
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-
 #include "main.h"
 #include "collect.h"
 #include "image.h"
@@ -88,7 +96,7 @@ static GPtrArray *generate_ptr_array_from_list(GList *src_list)
 static void swap(GPtrArray *array, guint index1, guint index2)
 {
        gpointer temp = g_ptr_array_index(array, index1);
-       
+
        g_ptr_array_index(array, index1) = g_ptr_array_index(array, index2);
        g_ptr_array_index(array, index2) = temp;
 }
@@ -116,7 +124,7 @@ static GList *generate_random_list(SlideShowData *ss)
        ptr_array_random_shuffle(src_array);
        g_ptr_array_foreach(src_array, (GFunc) list_prepend, &list);
        g_ptr_array_free(src_array, TRUE);
-       
+
        return list;
 }
 
@@ -296,6 +304,8 @@ static gboolean slideshow_step(SlideShowData *ss, gboolean forward)
        return TRUE;
 }
 
+static void slideshow_timer_reset(SlideShowData *ss);
+
 static gboolean slideshow_loop_cb(gpointer data)
 {
        SlideShowData *ss = data;
@@ -309,6 +319,9 @@ static gboolean slideshow_loop_cb(gpointer data)
                return FALSE;
                }
 
+       /* Check if the user has changed the timer interval */
+       slideshow_timer_reset(ss);
+
        return TRUE;
 }
 
@@ -365,7 +378,7 @@ static SlideShowData *real_slideshow_start(LayoutWindow *target_lw, ImageWindow
        ss = g_new0(SlideShowData, 1);
 
        ss->lw = target_lw;
-       ss->imd = imd; /* FIXME: ss->imd is used only for img-view.c and can be dropped with it */
+       ss->imd = imd; /** @FIXME ss->imd is used only for img-view.c and can be dropped with it */
        ss->filelist = filelist;
        ss->cd = cd;
 
@@ -403,7 +416,7 @@ static SlideShowData *real_slideshow_start(LayoutWindow *target_lw, ImageWindow
                }
 
        slideshow_list_init(ss, start_index);
-       
+
        if (ss->lw)
                ss->slide_fd = file_data_ref(layout_image_get_fd(ss->lw));
        else