summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorVivek Jain <viveksjain@gmail.com>2013-11-30 21:23:39 -0800
committerStefano Pigozzi <stefano.pigozzi@gmail.com>2013-12-02 09:03:31 +0100
commit6fb020f5de1487484712e7113db0e86dd97481bd (patch)
tree7561b28161f061d8b6c3a1146f131361b59fd686 /video
parenta74d9c1803462e0f7862f7b0659ab70939b92e15 (diff)
downloadmpv-6fb020f5de1487484712e7113db0e86dd97481bd.tar.bz2
mpv-6fb020f5de1487484712e7113db0e86dd97481bd.tar.xz
options: add option to disable using right Alt key as Alt Gr
mpv was hardcoded to always consider the right Alt key as Alt Gr, but there are parituclar combinations of platforms and keyboard layouts where it's more convenient to treat the right Alt as a keyboard modifier just like the left one. Fixes #388
Diffstat (limited to 'video')
-rw-r--r--video/out/vo_sdl.c8
-rw-r--r--video/out/w32_common.c2
2 files changed, 6 insertions, 4 deletions
diff --git a/video/out/vo_sdl.c b/video/out/vo_sdl.c
index 6fe62b187b..86643788b9 100644
--- a/video/out/vo_sdl.c
+++ b/video/out/vo_sdl.c
@@ -495,11 +495,13 @@ static void check_events(struct vo *vo)
case SDL_TEXTINPUT: {
int sdl_mod = SDL_GetModState();
int mpv_mod = 0;
- // we ignore KMOD_LSHIFT, KMOD_RSHIFT and KMOD_RALT because
- // these are already factored into ev.text.text
+ // we ignore KMOD_LSHIFT, KMOD_RSHIFT and KMOD_RALT (if
+ // mp_input_use_alt_gr() is true) because these are already
+ // factored into ev.text.text
if (sdl_mod & (KMOD_LCTRL | KMOD_RCTRL))
mpv_mod |= MP_KEY_MODIFIER_CTRL;
- if (sdl_mod & KMOD_LALT)
+ if ((sdl_mod & KMOD_LALT) ||
+ (sdl_mod & KMOD_RALT) && !mp_input_use_alt_gr(vo->input_ctx))
mpv_mod |= MP_KEY_MODIFIER_ALT;
if (sdl_mod & (KMOD_LGUI | KMOD_RGUI))
mpv_mod |= MP_KEY_MODIFIER_META;
diff --git a/video/out/w32_common.c b/video/out/w32_common.c
index f5b2729956..6c5ebe1703 100644
--- a/video/out/w32_common.c
+++ b/video/out/w32_common.c
@@ -203,7 +203,7 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam,
// Windows enables Ctrl+Alt when AltGr (VK_RMENU) is pressed.
// E.g. AltGr+9 on a German keyboard would yield Ctrl+Alt+[
// Warning: wine handles this differently. Don't test this on wine!
- if (key_state(vo, VK_RMENU))
+ if (key_state(vo, VK_RMENU) && mp_input_use_alt_gr(vo->input_ctx))
mods &= ~(MP_KEY_MODIFIER_CTRL | MP_KEY_MODIFIER_ALT);
// Apparently Ctrl+A to Ctrl+Z is special cased, and produces
// character codes from 1-26. Work it around.