rnd-20140114-1-src
[rocksndiamonds.git] / src / events.c
index 4bbd8a523c37a5913c49d466111d3757c99b862b..88fc321444e1a3dac81b763688b9079e3af516b6 100644 (file)
@@ -188,6 +188,13 @@ void EventLoop(void)
        }
       }
     }
+
+    // !!! CHECK THIS:
+    // !!! this may result in "HandleNoEvent()" never being called
+    // !!! (especially due to continuously processed tocuh events)
+    // !!! and therefore toon animations being stopped while events
+    // !!! are being processed (even if they are all thrown away)
+
     else
     {
       /* when playing, display a special mouse pointer inside the playfield */
@@ -403,6 +410,7 @@ void HandleMotionEvent(MotionEvent *event)
 #if defined(TARGET_SDL2)
 void HandleWindowEvent(WindowEvent *event)
 {
+#if DEBUG_EVENTS
   int subtype = event->event;
 
   char *event_name =
@@ -424,8 +432,11 @@ void HandleWindowEvent(WindowEvent *event)
 
   Error(ERR_DEBUG, "WINDOW EVENT: '%s', %ld, %ld",
        event_name, event->data1, event->data2);
+#endif
 
-  if (event->event == SDL_WINDOWEVENT_EXPOSED)
+  if (event->event == SDL_WINDOWEVENT_SIZE_CHANGED ||
+      event->event == SDL_WINDOWEVENT_RESIZED ||
+      event->event == SDL_WINDOWEVENT_EXPOSED)
     SDLRedrawWindow();
 
 #if 0
@@ -468,6 +479,9 @@ void HandleWindowEvent(WindowEvent *event)
 
       printf("::: setup.window_scaling_percent set to %d\n",
             setup.window_scaling_percent);
+
+      if (game_status == GAME_MODE_SETUP)
+       RedrawSetupScreenAfterFullscreenToggle();
     }
 #else
     // prevent slightly wrong scaling factor due to rounding differences
@@ -508,6 +522,7 @@ void HandleFingerEvent(FingerEvent *event)
   int max_events = 10;
 #endif
 
+#if 0
 #if DEBUG_EVENTS
   Error(ERR_DEBUG, "FINGER EVENT: finger was %s, touch ID %lld, finger ID %lld, x/y %f/%f, dx/dy %f/%f, pressure %f",
        event->type == EVENT_FINGERPRESS ? "pressed" :
@@ -518,6 +533,7 @@ void HandleFingerEvent(FingerEvent *event)
        event->dx, event->dy,
        event->pressure);
 #endif
+#endif
 
 #if 0
   int x = (int)(event->x * video.width);
@@ -598,12 +614,13 @@ void HandleTextEvent(TextEvent *event)
   Key key = getKeyFromKeyName(text);
 
 #if DEBUG_EVENTS
-  Error(ERR_DEBUG, "TEXT EVENT: text == '%s' [%d byte(s), '%c'/%d], resulting key == %d (%s)",
+  Error(ERR_DEBUG, "TEXT EVENT: text == '%s' [%d byte(s), '%c'/%d], resulting key == %d (%s) [%04x]",
        text,
        strlen(text),
        text[0], (int)(text[0]),
        key,
-       getKeyNameFromKey(key));
+       getKeyNameFromKey(key),
+       GetKeyModState());
 #endif
 
   // if (game_status != GAME_MODE_PLAYING && GetKeyModState() != KMOD_None)
@@ -1092,7 +1109,9 @@ void HandleKey(Key key, int key_status)
   {
     setup.fullscreen = !setup.fullscreen;
 
+#if 0
     printf("::: %d\n", setup.window_scaling_percent);
+#endif
 
     ToggleFullscreenIfNeeded();