From 61344dc5ac6c2ce2a2cbab35280ee3cc247a0056 Mon Sep 17 00:00:00 2001 From: Adam Scott Date: Tue, 11 Feb 2025 11:55:01 -0500 Subject: [PATCH] [Web] Refactor `mouse_mode` setters in display server --- platform/web/display_server_web.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/platform/web/display_server_web.cpp b/platform/web/display_server_web.cpp index 89cc6339d28..180c05ef411 100644 --- a/platform/web/display_server_web.cpp +++ b/platform/web/display_server_web.cpp @@ -576,9 +576,17 @@ void DisplayServerWeb::_mouse_update_mode() { void DisplayServerWeb::mouse_set_mode(MouseMode p_mode) { ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX); - if (p_mode == mouse_mode_base) { + + if (mouse_mode_override_enabled) { + mouse_mode_base = p_mode; + // No need to update, as override is enabled. return; } + if (p_mode == mouse_mode_base && p_mode == mouse_get_mode()) { + // No need to update, as it is currently set as the correct mode. + return; + } + mouse_mode_base = p_mode; _mouse_update_mode(); } @@ -596,9 +604,17 @@ DisplayServer::MouseMode DisplayServerWeb::mouse_get_mode() const { void DisplayServerWeb::mouse_set_mode_override(MouseMode p_mode) { ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX); - if (p_mode == mouse_mode_override) { + + if (!mouse_mode_override_enabled) { + mouse_mode_override = p_mode; + // No need to update, as override is not enabled. return; } + if (p_mode == mouse_mode_override && p_mode == mouse_get_mode()) { + // No need to update, as it is currently set as the correct mode. + return; + } + mouse_mode_override = p_mode; _mouse_update_mode(); }