rnd-20140117-2-src
authorHolger Schemel <info@artsoft.org>
Fri, 17 Jan 2014 20:52:05 +0000 (21:52 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 09:00:39 +0000 (11:00 +0200)
* changed fullscreen and window scaling changes in setup menu to have
  immediate effect (instead of being effective after leaving setup menu)

ChangeLog
src/conftime.h
src/events.c
src/screens.c
src/tools.c
src/tools.h

index c1e55e2650b96625977b9e81fd72d2b6ae17364c..7d65e26fc5ebacb3674432affd69ce54fc09b3ca 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2014-01-17
        * improved speed of displaying progress when loading levels and artwork
+       * changed fullscreen and window scaling changes in setup menu to have
+         immediate effect (instead of being effective after leaving setup menu)
 
 2014-01-15
        * fixed toons stopping on continuous touch events on Mac OS X
index a77246756d672e97abd37d350c154549031e138f..a5b14b0ca1e91b9944e8f4a03a003c4be7634f6c 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2014-01-17 16:49"
+#define COMPILE_DATE_STRING "2014-01-17 21:42"
index 2593dd2f5acfcf3026be1d655ee35c54de11ff13..2aa963e352b3ebb9ae07e5c9fc606fe8eee4dee8 100644 (file)
@@ -458,10 +458,6 @@ void HandleWindowEvent(WindowEvent *event)
     int new_window_width  = event->data1;
     int new_window_height = event->data2;
 
-    printf("::: RESIZED from %d, %d to %d, %d\n",
-          video.window_width, video.window_height,
-          new_window_width, new_window_height);
-
     // if window size has changed after resizing, calculate new scaling factor
     if (new_window_width  != video.window_width ||
        new_window_height != video.window_height)
@@ -469,6 +465,10 @@ void HandleWindowEvent(WindowEvent *event)
       int new_xpercent = (100 * new_window_width  / video.width);
       int new_ypercent = (100 * new_window_height / video.height);
 
+      printf("::: RESIZED from %d, %d to %d, %d\n",
+            video.window_width, video.window_height,
+            new_window_width, new_window_height);
+
       setup.window_scaling_percent = video.window_scaling_percent =
        MIN(MAX(MIN_WINDOW_SCALING_PERCENT, MIN(new_xpercent, new_ypercent)),
            MAX_WINDOW_SCALING_PERCENT);
@@ -1112,7 +1112,7 @@ void HandleKey(Key key, int key_status)
     printf("::: %d\n", setup.window_scaling_percent);
 #endif
 
-    ToggleFullscreenIfNeeded();
+    ToggleFullscreenOrChangeWindowScalingIfNeeded();
 
     if (game_status == GAME_MODE_SETUP)
       RedrawSetupScreenAfterFullscreenToggle();
@@ -1121,7 +1121,7 @@ void HandleKey(Key key, int key_status)
   }
 
   if ((key == KSYM_minus || key == KSYM_plus || key == KSYM_0) &&
-      (GetKeyModState() & KMOD_Control) && video.window_scaling_available &&
+      (GetKeyModState() & KMOD_Alt) && video.window_scaling_available &&
       !video.fullscreen_enabled)
   {
     if (key == KSYM_0)
@@ -1135,7 +1135,7 @@ void HandleKey(Key key, int key_status)
     else if (setup.window_scaling_percent > MAX_WINDOW_SCALING_PERCENT)
       setup.window_scaling_percent = MAX_WINDOW_SCALING_PERCENT;
 
-    ToggleFullscreenIfNeeded();
+    ToggleFullscreenOrChangeWindowScalingIfNeeded();
 
     if (game_status == GAME_MODE_SETUP)
       RedrawSetupScreenAfterFullscreenToggle();
index 6951099fa7ce61c31adc501dd8ee1aa09eae41fc..23950185c844134ff1c5927f43f3337762cc2e0c 100644 (file)
@@ -1346,7 +1346,8 @@ void DrawMainMenuExt(int fade_mask, boolean do_fading)
   }
 
   /* needed if last screen was the setup screen and fullscreen state changed */
-  ToggleFullscreenIfNeeded();
+  // (moved to "execSetupGraphics()" to change fullscreen state directly)
+  // ToggleFullscreenOrChangeWindowScalingIfNeeded();
 
   /* leveldir_current may be invalid (level group, parent link) */
   if (!validLevelSeries(leveldir_current))
@@ -4384,6 +4385,9 @@ static void execSetupGraphics()
   setup_mode = SETUP_MODE_GRAPHICS;
 
   DrawSetupScreen();
+
+  // window scaling may have changed at this point
+  ToggleFullscreenOrChangeWindowScalingIfNeeded();
 }
 
 #if !defined(PLATFORM_ANDROID)
@@ -5166,6 +5170,10 @@ static void changeSetupValue(int pos, int dx)
   }
 
   drawSetupValue(pos);
+
+  // fullscreen state may have changed at this point
+  if (setup_info[pos].value == &setup.fullscreen)
+    ToggleFullscreenOrChangeWindowScalingIfNeeded();
 }
 
 static void DrawCursorAndText_Setup(int pos, boolean active)
index 5766b7af56bcdd6f0944069c5d004a63c5742c36..34006e7d0bfcff0446a5b7992c71edc845a4ecf0 100644 (file)
@@ -9099,7 +9099,7 @@ void PlaySoundSelecting()
 #endif
 }
 
-void ToggleFullscreenIfNeeded()
+void ToggleFullscreenOrChangeWindowScalingIfNeeded()
 {
   boolean change_fullscreen = (setup.fullscreen !=
                               video.fullscreen_enabled);
index b7eed06f36cfe0b3698cd4f0fe71850d531ba511..a09eee5a877533500388c3e76b6f80b7337c4be2 100644 (file)
@@ -252,7 +252,7 @@ void PlayMenuMusic();
 void PlaySoundActivating();
 void PlaySoundSelecting();
 
-void ToggleFullscreenIfNeeded();
+void ToggleFullscreenOrChangeWindowScalingIfNeeded();
 void ChangeViewportPropertiesIfNeeded();
 
 #endif /* TOOLS_H */