From 5bb2f9787f557bd91d5eb9021238ed7b131d5fa9 Mon Sep 17 00:00:00 2001
From: Uoti Urpala <uau@glyph.nonexistent.invalid>
Date: Sun, 19 Dec 2010 13:34:06 +0200
Subject: [PATCH] input: add default keybindings Shift+[arrow] for small exact
 seeks

---
 DOCS/man/en/mplayer.1 | 4 ++++
 etc/input.conf        | 5 +++++
 input/input.c         | 4 ++++
 3 files changed, 13 insertions(+)

diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1
index 95ef58de81..e9065e941b 100644
--- a/DOCS/man/en/mplayer.1
+++ b/DOCS/man/en/mplayer.1
@@ -206,8 +206,12 @@ See the \-input option for ways to customize it.
 .RS
 .IPs "<\- and \->"
 Seek backward/\:forward 10 seconds.
+Shift+arrow does a 1 second exact seek (see \-hr\-seek; currently modifier
+keys like shift only work if used in an X output window).
 .IPs "up and down"
 Seek forward/\:backward 1 minute.
+Shift+arrow does a 5 second exact seek (see \-hr\-seek; currently modifier
+keys like shift only work if used in an X output window).
 .IPs "pgup and pgdown"
 Seek forward/\:backward 10 minutes.
 .IPs "[ and ]"
diff --git a/etc/input.conf b/etc/input.conf
index df7bcb60cd..74373d7ffe 100644
--- a/etc/input.conf
+++ b/etc/input.conf
@@ -19,6 +19,11 @@ RIGHT seek +10
 LEFT seek -10
 DOWN seek -60
 UP seek +60
+# Do smaller, always exact (non-keyframe-limited), seeks with shift.
+Shift+Right seek +1 0 1
+Shift+Left  seek -1 0 1
+Shift+Down  seek -5 0 1
+Shift+Up    seek +5 0 1
 PGUP seek 600
 PGDWN seek -600
 m mute
diff --git a/input/input.c b/input/input.c
index 7df91a6922..faa4cbb073 100644
--- a/input/input.c
+++ b/input/input.c
@@ -396,8 +396,12 @@ static const mp_cmd_bind_t def_cmd_binds[] = {
 
   { { KEY_RIGHT, 0 }, "seek 10" },
   { {  KEY_LEFT, 0 }, "seek -10" },
+  { { KEY_MODIFIER_SHIFT + KEY_RIGHT, 0 }, "seek  1 0 1" },
+  { { KEY_MODIFIER_SHIFT + KEY_LEFT,  0 }, "seek -1 0 1" },
   { {  KEY_UP, 0 }, "seek 60" },
   { {  KEY_DOWN, 0 }, "seek -60" },
+  { { KEY_MODIFIER_SHIFT + KEY_UP,    0 }, "seek  5 0 1" },
+  { { KEY_MODIFIER_SHIFT + KEY_DOWN,  0 }, "seek -5 0 1" },
   { {  KEY_PAGE_UP, 0 }, "seek 600" },
   { { KEY_PAGE_DOWN, 0 }, "seek -600" },
   { { '+', 0 }, "audio_delay 0.100" },