qt: port atomic_flag doresize from master

This commit is contained in:
ts-korhonen
2021-12-17 22:23:08 +02:00
parent 3825d5c53c
commit d3467568b0
3 changed files with 5 additions and 5 deletions

View File

@@ -66,16 +66,17 @@ extern int strnicmp(const char* s1, const char* s2, size_t n);
#ifdef __cplusplus
#include <atomic>
#define atomic_flag std::atomic_flag
#define atomic_flag_t std::atomic_flag
extern "C" {
#else
#include <stdatomic.h>
#define atomic_flag_t atomic_flag
#endif
/* Global variables residing in the platform module. */
extern int dopause, /* system is paused */
mouse_capture; /* mouse is captured in app */
extern atomic_flag doresize; /* screen resize requested */
extern atomic_flag_t doresize; /* screen resize requested */
extern volatile int is_quit; /* system exit requested */
#ifdef MTR_ENABLED

View File

@@ -80,12 +80,11 @@ main_thread_fn()
}
/* If needed, handle a screen resize. */
if (doresize && !video_fullscreen && !is_quit) {
if (!atomic_flag_test_and_set(&doresize) && !video_fullscreen && !is_quit) {
if (vid_resize & 2)
plat_resize(fixed_size_x, fixed_size_y);
else
plat_resize(scrnsz_x, scrnsz_y);
doresize = 0;
}
}

View File

@@ -1067,7 +1067,7 @@ static void update_scaled_checkboxes(Ui::MainWindow* ui, QAction* selected) {
reset_screen_size();
device_force_redraw();
video_force_resize_set(1);
doresize = 1;
atomic_flag_clear(&doresize);
config_save();
}