summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--TODO27
-rw-r--r--man/feh.pre34
-rw-r--r--src/feh.h4
-rw-r--r--src/imlib.c6
-rw-r--r--src/keyevents.c10
6 files changed, 57 insertions, 33 deletions
diff --git a/ChangeLog b/ChangeLog
index 0924004..03ec370 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,15 @@ git HEAD
* Respect --image-bg option in full-screen mode
+ [Patches by Yu-Jie Lin]
+
+ * Add scroll by page actions
+ * Allow combination of multiple key modifiers
+ * Fix option pair bug in theme config
+ <https://github.com/derf/feh/issues/49>
+ * Allow Shift modifier in key config
+ <https://github.com/derf/feh/issues/30>
+
Mon, 04 Jul 2011 14:46:36 +0200 Daniel Friesel <derf@finalrewind.org>
* Release v1.14.2
diff --git a/TODO b/TODO
index 9ab2592..f008e59 100644
--- a/TODO
+++ b/TODO
@@ -47,8 +47,8 @@ Running feh 1.9-21-gbeecfaf from github on a FC13 x86_64 machine.
user: dayne
votes: 1
created: 2010/10/06 16:22:25 -0700
- updated: 2011/04/12 11:48:32 -0700
- comments: 1
+ updated: 2011/08/01 02:45:58 -0700
+ comments: 2
12. "Reverse" --scale-down (zoom images to screen size)
-------------------------------------------------------
@@ -118,27 +118,6 @@ Like: "1 of 4" -> delete file -> "2 of 4" -> rerender -> "1 of 3"
user: derf
votes: 0
created: 2011/05/30 14:44:05 -0700
- updated: 2011/05/30 14:45:14 -0700
- comments: 0
-
-49. separated short options in theme file
------------------------------------------
-if a theme (but not normal commandline) contains multiple separate short
-options (e.g. -x -d instead of -xd), feh gives errors and ignores the first
-argument specified on commandline, or segfaults if no arguments are specified.
-for example:
-theme: feh --scale-down -x -d
-commandline: feh ~/img.jpg
-result: the following errors, and loading all images in . while ignoring
-~/img.jpg
-feh: invalid option -- '�'
-feh: invalid option -- ''
-
-experienced with 1.14.1
- state: open
- user: ze-
- votes: 0
- created: 2011/06/04 18:15:32 -0700
- updated: 2011/06/04 23:58:12 -0700
+ updated: 2011/08/01 09:03:40 -0700
comments: 1
diff --git a/man/feh.pre b/man/feh.pre
index 9a541b7..b220a2b 100644
--- a/man/feh.pre
+++ b/man/feh.pre
@@ -42,6 +42,11 @@ supports filelists, various image sorting modes, image captions and more.
Configurable keyboard shortcuts are used to control it; the mouse is also
supported, but only required for very few actions.
.
+.Pp
+.
+.Nm
+can also be used as wallpaper setter.
+.
.
.Sh MODES
.
@@ -873,16 +878,23 @@ is an X11 keysym name as shown by
.Xr xev 1 ,
like
.Qq Delete .
-It may optionally start with a modifier for things like Control, in which case
+It may optionally start with modifiers for things like Control, in which case
.Ar key
looks like
.Ar mod Ns No - Ns Ar keysym
-.Pq for example Qo C-Delete Qc for Ctrl+Delete .
+.Po
+for example
+.Qq C-Delete
+for Ctrl+Delete or
+.Qq C-1-Delete
+for Ctrl+Alt+Delete
+.Pc
.
.Pp
.
Available modifiers are
-.Ar C No for Control and
+.Ar C No for Control ,
+.Ar S No for Shift and
.Ar 1 , 4 No for Mod1 and Mod4 .
.
.Pp
@@ -1060,6 +1072,22 @@ Scroll down.
Note that the scroll keys work without anti-aliasing for performance reasons,
hit the render key after scrolling to antialias the image.
.
+.It Aq Alt+Left
+.
+Scroll to the left by one page
+.
+.It Aq Alt+Right
+.
+Scroll to the right by one page
+.
+.It Aq Alt+Up
+.
+Scroll up by one page
+.
+.It Aq Alt+Down
+.
+Scroll down by one page
+.
.It Ao keypad begin Ac Bq render
.
Antialias the image
diff --git a/src/feh.h b/src/feh.h
index 811a5e3..7b46a25 100644
--- a/src/feh.h
+++ b/src/feh.h
@@ -145,8 +145,8 @@ void real_loadables_mode(int loadable);
void feh_reload_image(winwidget w, int resize, int force_new);
void feh_filelist_image_remove(winwidget winwid, char do_delete);
void slideshow_save_image(winwidget win);
-void feh_edit_inplace_orient(winwidget w, int orientation);
-void feh_edit_inplace_lossless_rotate(winwidget w, int orientation);
+void feh_edit_inplace(winwidget w, int orientation);
+void feh_edit_inplace_lossless(winwidget w, int orientation);
gib_list *feh_wrap_string(char *text, int wrap_width, Imlib_Font fn, gib_style * style);
char *build_caption_filename(feh_file * file, short create_dir);
gib_list *feh_list_jump(gib_list * root, gib_list * l, int direction, int num);
diff --git a/src/imlib.c b/src/imlib.c
index f5e63c3..e27db57 100644
--- a/src/imlib.c
+++ b/src/imlib.c
@@ -923,9 +923,9 @@ void feh_edit_inplace_lossless(winwidget w, int op)
int len = strlen(filename) + 1;
char *file_str = emalloc(len);
int pid, status;
- char op_name[] = "rotate"; // for message
- char op_op[] = "-rotate"; // for jpegtran option
- char op_value[] = "horizontal"; // for jpegtran option's value
+ char op_name[] = "rotate"; /* message */
+ char op_op[] = "-rotate"; /* jpegtran option */
+ char op_value[] = "horizontal"; /* jpegtran option's value */
if (op == INPLACE_EDIT_FLIP) {
sprintf(op_name, "flip");
diff --git a/src/keyevents.c b/src/keyevents.c
index 617c2e9..7c14e14 100644
--- a/src/keyevents.c
+++ b/src/keyevents.c
@@ -55,6 +55,9 @@ static void feh_set_parse_kb_partial(fehkey *key, int index, char *ks) {
case 'C':
mod |= ControlMask;
break;
+ case 'S':
+ mod |= ShiftMask;
+ break;
case '1':
mod |= Mod1Mask;
break;
@@ -69,6 +72,8 @@ static void feh_set_parse_kb_partial(fehkey *key, int index, char *ks) {
}
key->keysyms[index] = XStringToKeysym(cur);
+ if (isascii(key->keysyms[index]))
+ mod &= ~ShiftMask;
key->keystates[index] = mod;
if (key->keysyms[index] == NoSymbol)
@@ -362,7 +367,10 @@ void feh_event_handle_keypress(XEvent * ev)
kev = (XKeyEvent *) ev;
len = XLookupString(&ev->xkey, (char *) kbuf, sizeof(kbuf), &keysym, NULL);
- state = kev->state & (ControlMask | Mod1Mask | Mod4Mask);
+ state = kev->state & (ControlMask | ShiftMask | Mod1Mask | Mod4Mask);
+
+ if (isascii(keysym))
+ state &= ~ShiftMask;
/* menus are showing, so this is a menu control keypress */
if (ev->xbutton.window == menu_cover) {