From 8deeeeb4faedea94742caac9be592d8cbfc2f680 Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Tue, 26 Nov 2019 16:45:05 +0100 Subject: [PATCH] GL: use Ctrl-UP/Ctrl-DOWN GL: use Ctrl-UP/Ctrl-DOWN instead of UP/DOWN in order not to interfere with import/file keybindings. --- src/keyboard_control.h | 2 ++ src/video_display/gl.cpp | 15 +++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/keyboard_control.h b/src/keyboard_control.h index 3270b08f1..0006bb646 100644 --- a/src/keyboard_control.h +++ b/src/keyboard_control.h @@ -110,6 +110,8 @@ private: #define K_RIGHT 0x1b5b43 #define K_LEFT 0x1b5b44 #define K_CTRL(x) (1 + ((x) >= 'A' && (x) <= 'Z' ? (x) - 'A' + 'a' : (x)) - 'a') +#define K_CTRL_UP 0x1b5b313b3541LL +#define K_CTRL_DOWN 0x1b5b313b3542LL #define K_ALT(x) ('\e' << 8 | (x)) /// exception - include ESC, otherwise Alt-a would become 'a' #define MAX_KEYCODE_NAME_LEN 8 diff --git a/src/video_display/gl.cpp b/src/video_display/gl.cpp index ee9590f42..a6e8b51fa 100644 --- a/src/video_display/gl.cpp +++ b/src/video_display/gl.cpp @@ -182,8 +182,8 @@ void main() const static list> keybindings {{'f', "toggle fullscreen"}, {'q', "quit"}, {'d', "toggle deinterlace"}, {'p', "pause video"}, {K_ALT('s'), "screenshot"}, {K_ALT('c'), "show/hide cursor"}, - {K_DOWN, "make window smaller by a factor of 50%"}, - {K_UP, "make window twice as big"} + {K_CTRL_DOWN, "make window smaller by a factor of 50%"}, + {K_CTRL_UP, "make window twice as big"} }; #ifdef HWACC_VDPAU @@ -1002,6 +1002,13 @@ static int64_t translate_glut_to_ug(int key, bool is_special) { } #endif // defined FREEGLUT if (is_special) { + if (glutGetModifiers() == GLUT_ACTIVE_CTRL) { + switch (key) { + case GLUT_KEY_UP: return K_CTRL_UP; + case GLUT_KEY_DOWN: return K_CTRL_DOWN; + default: return -1; + } + } switch (key) { case GLUT_KEY_LEFT: return K_LEFT; case GLUT_KEY_UP: return K_UP; @@ -1057,12 +1064,12 @@ static bool display_gl_process_key(struct state_gl *s, long long int key) LOG(LOG_LEVEL_NOTICE) << MOD_NAME << "Show cursor (0 - on, 1 - off, 2 - autohide): " << s->show_cursor << "\n"; glutSetCursor(s->show_cursor == state_gl::SC_TRUE ? GLUT_CURSOR_INHERIT : GLUT_CURSOR_NONE); break; - case K_UP: + case K_CTRL_UP: s->window_size_factor *= 2; glut_resize_window(s->fs, s->current_display_desc.height, s->aspect, s->window_size_factor); break; - case K_DOWN: + case K_CTRL_DOWN: s->window_size_factor /= 2; glut_resize_window(s->fs, s->current_display_desc.height, s->aspect, s->window_size_factor);