|
|
|
@ -488,9 +488,6 @@ screen_resize_to_fit(struct screen *screen) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int flags = SDL_GetWindowFlags(screen->window);
|
|
|
|
|
LOGI("resize to fit (%d 0x%x)", screen->maximized, flags);
|
|
|
|
|
|
|
|
|
|
if (screen->maximized) {
|
|
|
|
|
SDL_RestoreWindow(screen->window);
|
|
|
|
|
screen->maximized = false;
|
|
|
|
@ -499,7 +496,7 @@ screen_resize_to_fit(struct screen *screen) {
|
|
|
|
|
struct size optimal_size =
|
|
|
|
|
get_optimal_window_size(screen, screen->content_size);
|
|
|
|
|
SDL_SetWindowSize(screen->window, optimal_size.width, optimal_size.height);
|
|
|
|
|
LOGI("Resized to optimal size: %ux%u", optimal_size.width,
|
|
|
|
|
LOGD("Resized to optimal size: %ux%u", optimal_size.width,
|
|
|
|
|
optimal_size.height);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -523,7 +520,6 @@ screen_resize_to_pixel_perfect(struct screen *screen) {
|
|
|
|
|
static inline bool
|
|
|
|
|
is_fullscreen(const struct screen *screen) {
|
|
|
|
|
uint32_t flags = SDL_GetWindowFlags(screen->window);
|
|
|
|
|
LOGI("flags = 0x%x", flags);
|
|
|
|
|
return !!(flags & (SDL_WINDOW_FULLSCREEN | SDL_WINDOW_FULLSCREEN_DESKTOP));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -546,27 +542,16 @@ screen_handle_window_event(struct screen *screen,
|
|
|
|
|
const SDL_WindowEvent *event) {
|
|
|
|
|
switch (event->event) {
|
|
|
|
|
case SDL_WINDOWEVENT_EXPOSED:
|
|
|
|
|
LOGI("EXPOSED");
|
|
|
|
|
screen_render(screen);
|
|
|
|
|
break;
|
|
|
|
|
case SDL_WINDOWEVENT_SIZE_CHANGED:
|
|
|
|
|
LOGI("SIZE_CHANGED %dx%d", event->data1, event->data2);
|
|
|
|
|
//update_fullscreen_state(screen);
|
|
|
|
|
update_fullscreen_state(screen);
|
|
|
|
|
screen_render(screen);
|
|
|
|
|
break;
|
|
|
|
|
case SDL_WINDOWEVENT_MAXIMIZED:
|
|
|
|
|
LOGI("MAXIMIZED");
|
|
|
|
|
screen->maximized = true;
|
|
|
|
|
break;
|
|
|
|
|
case SDL_WINDOWEVENT_RESTORED:
|
|
|
|
|
LOGI("RESTORED");
|
|
|
|
|
if (screen->fullscreen) {
|
|
|
|
|
// On Windows, in maximized+fullscreen, disabling fullscreen
|
|
|
|
|
// mode unexpectedly triggers the "restored" then "maximized"
|
|
|
|
|
// events, leaving the window in a weird state (maximized
|
|
|
|
|
// according to the events, but not maximized visually).
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
screen->maximized = false;
|
|
|
|
|
apply_pending_resize(screen);
|
|
|
|
|
break;
|
|
|
|
|