1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-12-17 03:28:05 +00:00

fixed mouse refreshing

This commit is contained in:
Zeno Rogue
2025-12-11 23:36:16 +01:00
parent da914291f7
commit a6a2490c3b
3 changed files with 9 additions and 7 deletions

View File

@@ -1292,10 +1292,11 @@ EX void handle_event(SDL_Event& ev) {
if(ev.button.x != ui_mousex || ev.button.y != ui_mousey) { if(ev.button.x != ui_mousex || ev.button.y != ui_mousey) {
mousex = ui_mousex = ev.button.x; mousex = ui_mousex = ev.button.x;
mousey = ui_mousey = ev.button.y; mousey = ui_mousey = ev.button.y;
just_refreshing = true; just_refreshing = 2;
reset_handlers(); reset_handlers();
screens.back()(); screens.back()();
just_refreshing = false; just_refreshing = 0;
need_refresh = false;
} }
mousepressed = ev.type == SDL_EVENT_MOUSE_BUTTON_DOWN; mousepressed = ev.type == SDL_EVENT_MOUSE_BUTTON_DOWN;
@@ -1445,10 +1446,10 @@ EX void handle_event(SDL_Event& ev) {
if(sym || uni) { if(sym || uni) {
if(need_refresh) { if(need_refresh) {
just_refreshing = true; just_refreshing = 1;
reset_handlers(); reset_handlers();
screens.back()(); screens.back()();
just_refreshing = false; just_refreshing = 0;
} }
need_refresh = true; need_refresh = true;
} }

View File

@@ -732,7 +732,7 @@ EX namespace dialog {
EX void display() { EX void display() {
callhooks(hooks_display_dialog); callhooks(hooks_display_dialog);
if(just_refreshing) return; if(just_refreshing == 1) return;
int N = items.size(); int N = items.size();
dfsize = vid.fsize * dialog_font_scale; dfsize = vid.fsize * dialog_font_scale;
#if ISMOBILE || ISPANDORA #if ISMOBILE || ISPANDORA

View File

@@ -1691,7 +1691,8 @@ EX void drawfullmap() {
extern bool wclick; extern bool wclick;
#endif #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 int menu_darkening = 2;
EX bool centered_menus = false; EX bool centered_menus = false;
@@ -1706,7 +1707,7 @@ EX void gamescreen() {
return; return;
} }
if(just_refreshing) return; if(just_refreshing == 1) return;
if(subscreens::split([=] () { if(subscreens::split([=] () {
calcparam(); calcparam();