Krolyxon
Commit 4e8dabd

Branches

Refs →

nsxiv4e8dabd

Added i_reset_slideshow: set slideshow delay to number prefix

Author
Bert Münnich
Date
2011-10-16 18:58 +0200
Parent
c6bddfe
Commit
4e8dabd6ac47185697744621b3ee638fc34e473a

+29 −9

3 files changed

  1. M commands.c +27 −8
  2. M commands.h +1 −0
  3. M config.def.h +1 −1
M commands.c View
@@ -17,6 +17,7 @@
1717 */
1818
1919 #define _POSIX_C_SOURCE 200112L
20+#define _IMAGE_CONFIG
2021
2122 #include <stdlib.h>
2223 #include <string.h>
@@ -27,6 +28,7 @@
2728 #include "image.h"
2829 #include "thumbs.h"
2930 #include "util.h"
31+#include "config.h"
3032
3133 void cleanup(void);
3234 void remove_file(int, bool);
@@ -48,6 +50,10 @@ extern int filecnt, fileidx;
4850
4951 extern int prefix;
5052
53+const int ss_delays[] = {
54+ 1, 2, 3, 5, 10, 15, 20, 30, 60, 120, 180, 300, 600
55+};
56+
5157 bool it_quit(arg_t a) {
5258 cleanup();
5359 exit(EXIT_SUCCESS);
@@ -118,7 +124,7 @@ bool i_navigate(arg_t a) {
118124 long n = (long) a;
119125
120126 if (mode == MODE_IMAGE) {
121− if (prefix)
127+ if (prefix > 0)
122128 n *= prefix;
123129 n += fileidx;
124130 if (n < 0)
@@ -345,22 +351,22 @@ bool i_toggle_slideshow(arg_t a) {
345351
346352 bool i_adjust_slideshow(arg_t a) {
347353 long d = (long) a;
348− int i, delays[] = { 1, 2, 3, 5, 10, 15, 20, 30, 60, 120, 180, 300, 600 };
354+ int i;
349355
350356 if (mode != MODE_IMAGE || !img.slideshow)
351357 return false;
352358
353359 if (d < 0) {
354− for (i = ARRLEN(delays) - 2; i >= 0; i--) {
355− if (img.ss_delay > delays[i] * 1000) {
356− img.ss_delay = delays[i] * 1000;
360+ for (i = ARRLEN(ss_delays) - 2; i >= 0; i--) {
361+ if (img.ss_delay > ss_delays[i] * 1000) {
362+ img.ss_delay = ss_delays[i] * 1000;
357363 return true;
358364 }
359365 }
360366 } else {
361− for (i = 1; i < ARRLEN(delays); i++) {
362− if (img.ss_delay < delays[i] * 1000) {
363− img.ss_delay = delays[i] * 1000;
367+ for (i = 1; i < ARRLEN(ss_delays); i++) {
368+ if (img.ss_delay < ss_delays[i] * 1000) {
369+ img.ss_delay = ss_delays[i] * 1000;
364370 return true;
365371 }
366372 }
@@ -368,6 +374,19 @@ bool i_adjust_slideshow(arg_t a) {
368374 return false;
369375 }
370376
377+bool i_reset_slideshow(arg_t a) {
378+ if (mode != MODE_IMAGE || !img.slideshow)
379+ return false;
380+
381+ if (prefix > 0) {
382+ img.ss_delay = MIN(prefix, ss_delays[ARRLEN(ss_delays) - 1]);
383+ img.ss_delay = MAX(img.ss_delay, ss_delays[0]) * 1000;
384+ } else {
385+ img.ss_delay = SLIDESHOW_DELAY * 1000;
386+ }
387+ return true;
388+}
389+
371390 bool i_toggle_antialias(arg_t a) {
372391 if (mode == MODE_IMAGE) {
373392 img_toggle_antialias(&img);
M commands.h View
@@ -62,6 +62,7 @@ bool i_fit_to_img(arg_t);
6262 bool i_rotate(arg_t);
6363 bool i_toggle_slideshow(arg_t);
6464 bool i_adjust_slideshow(arg_t);
65+bool i_reset_slideshow(arg_t);
6566 bool i_toggle_antialias(arg_t);
6667 bool it_toggle_alpha(arg_t);
6768 bool it_open_with(arg_t);
M config.def.h View
@@ -121,8 +121,8 @@ static const keymap_t keys[] = {
121121
122122 { false, XK_s, i_toggle_slideshow, (arg_t) None },
123123 { true, XK_plus, i_adjust_slideshow, (arg_t) +1 },
124− { true, XK_equal, i_adjust_slideshow, (arg_t) +1 },
125124 { true, XK_minus, i_adjust_slideshow, (arg_t) -1 },
125+ { true, XK_equal, i_reset_slideshow, (arg_t) None },
126126
127127 { false, XK_a, i_toggle_antialias, (arg_t) None },
128128 { false, XK_A, it_toggle_alpha, (arg_t) None },