Browse Source

[Web] Refactor `mouse_mode` setters in display server

Adam Scott 6 months ago
parent
commit
61344dc5ac
1 changed files with 18 additions and 2 deletions
  1. 18 2
      platform/web/display_server_web.cpp

+ 18 - 2
platform/web/display_server_web.cpp

@@ -576,9 +576,17 @@ void DisplayServerWeb::_mouse_update_mode() {
 
 
 void DisplayServerWeb::mouse_set_mode(MouseMode p_mode) {
 void DisplayServerWeb::mouse_set_mode(MouseMode p_mode) {
 	ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX);
 	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;
 		return;
 	}
 	}
+
 	mouse_mode_base = p_mode;
 	mouse_mode_base = p_mode;
 	_mouse_update_mode();
 	_mouse_update_mode();
 }
 }
@@ -596,9 +604,17 @@ DisplayServer::MouseMode DisplayServerWeb::mouse_get_mode() const {
 
 
 void DisplayServerWeb::mouse_set_mode_override(MouseMode p_mode) {
 void DisplayServerWeb::mouse_set_mode_override(MouseMode p_mode) {
 	ERR_FAIL_INDEX(p_mode, MouseMode::MOUSE_MODE_MAX);
 	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;
 		return;
 	}
 	}
+
 	mouse_mode_override = p_mode;
 	mouse_mode_override = p_mode;
 	_mouse_update_mode();
 	_mouse_update_mode();
 }
 }