shithub: choc

Download patch

ref: d534cb633ed25d555e406221ed487892c807b34a
parent: 07afb7749ff807118431ea356ab56364ef8cfee8
parent: 34ba8008e57bbdc58349c087f8cea249cf8ade36
author: Jonathan Dowland <jon+github@alcopop.org>
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;