From 30a19a5c2f6293f8b1fff7fa1fa927f7d1f69fa0 Mon Sep 17 00:00:00 2001 From: Markus Sauermann <6299227+Sauermann@users.noreply.github.com> Date: Thu, 2 May 2024 00:10:29 +0200 Subject: [PATCH] Make `mouse_focus` and `mouse_focus_mask` consistent for force_drag In `Viewport::_gui_force_drag` currently `Viewport::gui.mouse_focus` gets cleared, but `Viewport::gui.mouse_focus_mask` doesn't get cleared. This is an inconsistency which can cause a crash. With the change of this PR, `mouse_focus_mask` also gets cleared. This is in alignment with how regular drag and drop clears both variables. --- scene/main/viewport.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index 522dc74661b..240ab85e610 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -2318,6 +2318,7 @@ void Viewport::_gui_force_drag(Control *p_base, const Variant &p_data, Control * gui.dragging = true; gui.drag_data = p_data; gui.mouse_focus = nullptr; + gui.mouse_focus_mask.clear(); if (p_control) { _gui_set_drag_preview(p_base, p_control);