From c160825854dc6fb44e4e32a99b43b751f2514e67 Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Sun, 20 Oct 2019 15:32:33 +0200 Subject: [PATCH] Handle window resizing in screen Only the screen knows what to do when the window is resized. This paves the way to do other actions on window resizing. --- app/src/scrcpy.c | 4 +++- app/src/screen.c | 5 +++++ app/src/screen.h | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/scrcpy.c b/app/src/scrcpy.c index c219c9e5..c2ed8bb7 100644 --- a/app/src/scrcpy.c +++ b/app/src/scrcpy.c @@ -145,9 +145,11 @@ handle_event(SDL_Event *event, bool control) { case SDL_WINDOWEVENT: switch (event->window.event) { case SDL_WINDOWEVENT_EXPOSED: - case SDL_WINDOWEVENT_SIZE_CHANGED: screen_render(&screen); break; + case SDL_WINDOWEVENT_SIZE_CHANGED: + screen_window_resized(&screen); + break; } break; case SDL_TEXTINPUT: diff --git a/app/src/screen.c b/app/src/screen.c index 4bc4c5c5..f90863dd 100644 --- a/app/src/screen.c +++ b/app/src/screen.c @@ -278,6 +278,11 @@ screen_update_frame(struct screen *screen, struct video_buffer *vb) { return true; } +void +screen_window_resized(struct screen *screen) { + screen_render(screen); +} + void screen_render(struct screen *screen) { SDL_RenderClear(screen->renderer); diff --git a/app/src/screen.h b/app/src/screen.h index bc189189..fed84ece 100644 --- a/app/src/screen.h +++ b/app/src/screen.h @@ -60,6 +60,10 @@ screen_destroy(struct screen *screen); bool screen_update_frame(struct screen *screen, struct video_buffer *vb); +// update content after window resizing +void +screen_window_resized(struct screen *screen); + // render the texture to the renderer void screen_render(struct screen *screen);