Handle window events from screen.c
Only the screen knows what to do on window events. This paves the way to handle more window events.
This commit is contained in:
parent
6996cbf5d3
commit
f6f2868868
3 changed files with 16 additions and 6 deletions
|
@ -144,12 +144,7 @@ handle_event(SDL_Event *event, bool control) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SDL_WINDOWEVENT:
|
case SDL_WINDOWEVENT:
|
||||||
switch (event->window.event) {
|
screen_handle_window_event(&screen, &event->window);
|
||||||
case SDL_WINDOWEVENT_EXPOSED:
|
|
||||||
case SDL_WINDOWEVENT_SIZE_CHANGED:
|
|
||||||
screen_render(&screen);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case SDL_TEXTINPUT:
|
case SDL_TEXTINPUT:
|
||||||
if (!control) {
|
if (!control) {
|
||||||
|
|
|
@ -327,3 +327,14 @@ screen_resize_to_pixel_perfect(struct screen *screen) {
|
||||||
LOGD("Resized to pixel-perfect");
|
LOGD("Resized to pixel-perfect");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
screen_handle_window_event(struct screen *screen,
|
||||||
|
const SDL_WindowEvent *event) {
|
||||||
|
switch (event->event) {
|
||||||
|
case SDL_WINDOWEVENT_EXPOSED:
|
||||||
|
case SDL_WINDOWEVENT_SIZE_CHANGED:
|
||||||
|
screen_render(screen);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -76,4 +76,8 @@ screen_resize_to_fit(struct screen *screen);
|
||||||
void
|
void
|
||||||
screen_resize_to_pixel_perfect(struct screen *screen);
|
screen_resize_to_pixel_perfect(struct screen *screen);
|
||||||
|
|
||||||
|
// react to window events
|
||||||
|
void
|
||||||
|
screen_handle_window_event(struct screen *screen, const SDL_WindowEvent *event);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue