From a6a2490c3b1b0191424bead0ff0a8ff29ec9f975 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Thu, 11 Dec 2025 23:36:16 +0100 Subject: [PATCH] fixed mouse refreshing --- control.cpp | 9 +++++---- dialogs.cpp | 2 +- graph.cpp | 5 +++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/control.cpp b/control.cpp index 3caa890e..9a49c7c9 100644 --- a/control.cpp +++ b/control.cpp @@ -1292,10 +1292,11 @@ EX void handle_event(SDL_Event& ev) { if(ev.button.x != ui_mousex || ev.button.y != ui_mousey) { mousex = ui_mousex = ev.button.x; mousey = ui_mousey = ev.button.y; - just_refreshing = true; + just_refreshing = 2; reset_handlers(); screens.back()(); - just_refreshing = false; + just_refreshing = 0; + need_refresh = false; } mousepressed = ev.type == SDL_EVENT_MOUSE_BUTTON_DOWN; @@ -1445,10 +1446,10 @@ EX void handle_event(SDL_Event& ev) { if(sym || uni) { if(need_refresh) { - just_refreshing = true; + just_refreshing = 1; reset_handlers(); screens.back()(); - just_refreshing = false; + just_refreshing = 0; } need_refresh = true; } diff --git a/dialogs.cpp b/dialogs.cpp index 7908ac34..33254a1f 100644 --- a/dialogs.cpp +++ b/dialogs.cpp @@ -732,7 +732,7 @@ EX namespace dialog { EX void display() { callhooks(hooks_display_dialog); - if(just_refreshing) return; + if(just_refreshing == 1) return; int N = items.size(); dfsize = vid.fsize * dialog_font_scale; #if ISMOBILE || ISPANDORA diff --git a/graph.cpp b/graph.cpp index 6c902afc..aa4f68ce 100644 --- a/graph.cpp +++ b/graph.cpp @@ -1691,7 +1691,8 @@ EX void drawfullmap() { extern bool wclick; #endif -EX bool just_refreshing; +// 0 = not refreshing, 1 = refreshing for keyboard, 2 = refreshing for mouse position analysis +EX int just_refreshing; EX int menu_darkening = 2; EX bool centered_menus = false; @@ -1706,7 +1707,7 @@ EX void gamescreen() { return; } - if(just_refreshing) return; + if(just_refreshing == 1) return; if(subscreens::split([=] () { calcparam();