ref: d534cb633ed25d555e406221ed487892c807b34a
parent: 07afb7749ff807118431ea356ab56364ef8cfee8
parent: 34ba8008e57bbdc58349c087f8cea249cf8ade36
author: Jonathan Dowland <[email protected]>
date: Thu May 5 08:39:20 EDT 2016
Merge pull request #696 from jmtd/sdl2-fullscreen-toggle [sdl2-branch] toggle fullscreen with cmd+enter
--- a/src/i_video.c
+++ b/src/i_video.c
@@ -319,6 +319,21 @@
}
}
+static boolean ToggleFullScreenKeyShortcut(SDL_Keysym *sym)
+{
+ Uint16 flags = (KMOD_LALT | KMOD_RALT);
+#if defined(__MACOSX__)
+ flags |= (KMOD_LGUI | KMOD_RGUI);
+#endif
+ return (sym->scancode == SDL_SCANCODE_RETURN && sym->mod & flags);
+}
+
+static void I_ToggleFullScreen(void)
+{
+ Uint32 flags = SDL_GetWindowFlags(screen) & SDL_WINDOW_FULLSCREEN_DESKTOP;
+ SDL_SetWindowFullscreen(screen, flags ^ SDL_WINDOW_FULLSCREEN_DESKTOP);
+}
+
void I_GetEvent(void)
{
extern void I_HandleKeyboardEvent(SDL_Event *sdlevent);
@@ -332,6 +347,13 @@
switch (sdlevent.type)
{
case SDL_KEYDOWN:
+ if (ToggleFullScreenKeyShortcut(&sdlevent.key.keysym))
+ {
+ I_ToggleFullScreen();
+ break;
+ }
+ // deliberate fall-though
+
case SDL_KEYUP:
I_HandleKeyboardEvent(&sdlevent);
break;