Răsfoiți Sursa

wayland: Send exposure events when showing or resizing the window

Clients may rely on this event to signal when they should redraw themselves, so send it when appropriate.

(cherry picked from commit 8fa99993af4e50d41a7c5f0927fd4a6d04639004)
Frank Praznik 1 an în urmă
părinte
comite
d32189918b
1 a modificat fișierele cu 4 adăugiri și 0 ștergeri
  1. 4 0
      src/video/wayland/SDL_waylandwindow.c

+ 4 - 0
src/video/wayland/SDL_waylandwindow.c

@@ -1481,6 +1481,9 @@ void Wayland_ShowWindow(_THIS, SDL_Window *window)
      * HideWindow was called immediately before ShowWindow.
      */
     WAYLAND_wl_display_roundtrip(c->display);
+
+    /* Send an exposure event to signal that the client should draw. */
+    SDL_SendWindowEvent(window, SDL_WINDOWEVENT_EXPOSED, 0, 0);
 }
 
 static void Wayland_ReleasePopup(_THIS, SDL_Window *popup)
@@ -2147,6 +2150,7 @@ static void Wayland_HandleResize(SDL_Window *window, int width, int height, floa
         window->w = 0;
         window->h = 0;
         SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, width, height);
+        SDL_SendWindowEvent(window, SDL_WINDOWEVENT_EXPOSED, 0, 0);
         window->w = width;
         window->h = height;
         data->needs_resize_event = SDL_FALSE;