summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@derf.homelinux.org>2010-06-07 12:14:00 +0200
committerDaniel Friesel <derf@derf.homelinux.org>2010-06-07 12:17:07 +0200
commit9087479e3fc31e26cf7629138010be4c877517fa (patch)
tree606776b38ba6664cd736fd422b90dfb841cc1c0a
parente264613a4ac1b7be3d5ab265a3041f57a709750f (diff)
Allow specifying slideshow-delay while starting the slideshow in paused mode
Set --slideshow-delay to a negative value to achieve that. In that case, the actual slideshow-delay will be <value> * (-1), so -D-5 sets slideshow-delay 5 seconds but starts paused. Closes: GH-4 <http://github.com/derf/feh/issues#issue/4>
-rw-r--r--ChangeLog1
-rw-r--r--man/feh.17
-rw-r--r--src/options.c6
-rw-r--r--src/slideshow.c4
4 files changed, 14 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 33ae807..ba76300 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,7 @@ git HEAD
* Fix segfault in Thumbnail mode when trying to open a no longer
existing image (e.g. when the file was renamed by a previous action)
+ * Set a negative slideshow-delay to start the slideshow in paused mode
Sat Jun 5 21:35:25 CEST 2010 Daniel Friesel <derf@chaosdorf.de
diff --git a/man/feh.1 b/man/feh.1
index a56c533..9385c62 100644
--- a/man/feh.1
+++ b/man/feh.1
@@ -313,6 +313,9 @@ managers.
For slideshow mode, wait
.Ar float
seconds between automatically changing slides. Useful for presentations.
+Specify a negative number to set the delay
+.Pq which will then be Ar float No * (-1) ,
+but start feh in paused mode.
.It Cm -S , --sort Ar sort_type
The file list may be sorted according to image parameters. Allowed sort
types are: name, filename, width, height, pixels, size, format. For sort
@@ -566,7 +569,9 @@ Toggle filename display
.It f , F
Save the current filelist to a unique filename
.It h , H
-Pause the slideshow
+Pause/Continue the slideshow. When it is paused, it will not automatically
+change slides based on
+.Cm --slideshow-delay
.It m , M
Show menu
.It n , N , Ao space Ac , Aq right
diff --git a/src/options.c b/src/options.c
index 3cc4bd9..e7524f4 100644
--- a/src/options.c
+++ b/src/options.c
@@ -49,7 +49,7 @@ void init_parse_options(int argc, char **argv)
memset(&opt, 0, sizeof(fehoptions));
opt.display = 1;
opt.aspect = 1;
- opt.slideshow_delay = -1.0;
+ opt.slideshow_delay = 0.0;
opt.thumb_w = 60;
opt.thumb_h = 60;
opt.thumb_redraw = 10;
@@ -597,6 +597,10 @@ static void feh_parse_option_array(int argc, char **argv)
break;
case 'D':
opt.slideshow_delay = atof(optarg);
+ if (opt.slideshow_delay < 0.0) {
+ opt.slideshow_delay *= (-1);
+ opt.paused = 1;
+ }
break;
case 'R':
opt.reload = atoi(optarg);
diff --git a/src/slideshow.c b/src/slideshow.c
index e3791a1..4f95c46 100644
--- a/src/slideshow.c
+++ b/src/slideshow.c
@@ -63,7 +63,7 @@ void init_slideshow_mode(void)
free(s);
success = 1;
winwidget_show(w);
- if (opt.slideshow_delay >= 0.0)
+ if (opt.slideshow_delay > 0.0)
feh_add_timer(cb_slide_timer, w, opt.slideshow_delay, "SLIDE_CHANGE");
else if (opt.reload > 0)
feh_add_unique_timer(cb_reload_timer, w, opt.reload);
@@ -278,7 +278,7 @@ void slideshow_change_image(winwidget winwid, int change)
if (filelist_len == 0)
eprintf("No more slides in show");
- if (opt.slideshow_delay >= 0.0)
+ if (opt.slideshow_delay > 0.0)
feh_add_timer(cb_slide_timer, winwid, opt.slideshow_delay, "SLIDE_CHANGE");
D_RETURN_(4);
}