From 186d8259d54c0147b63f46ca882b67885b96f782 Mon Sep 17 00:00:00 2001 From: Michael Alexsander Date: Wed, 12 Mar 2025 12:02:25 -0300 Subject: [PATCH] Fix wrong canvas camera override panning in the runtime debugger --- scene/debugger/scene_debugger.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scene/debugger/scene_debugger.cpp b/scene/debugger/scene_debugger.cpp index cd2388da5ad..8a054edcee7 100644 --- a/scene/debugger/scene_debugger.cpp +++ b/scene/debugger/scene_debugger.cpp @@ -1425,7 +1425,7 @@ void RuntimeNodeSelect::_root_window_input(const Ref &p_event) { bool is_dragging_camera = false; if (camera_override) { if (node_select_type == NODE_TYPE_2D) { - is_dragging_camera = panner->gui_input(p_event, Rect2(Vector2(), root->get_size())); + is_dragging_camera = panner->gui_input(p_event, Rect2(Vector2(), root->get_visible_rect().get_size())); } else if (node_select_type == NODE_TYPE_3D && selection_drag_state == SELECTION_DRAG_NONE) { #ifndef _3D_DISABLED if (_handle_3d_input(p_event)) { @@ -2214,8 +2214,9 @@ void RuntimeNodeSelect::_find_canvas_items_at_rect(const Rect2 &p_rect, Node *p_ } void RuntimeNodeSelect::_pan_callback(Vector2 p_scroll_vec, Ref p_event) { - view_2d_offset.x -= p_scroll_vec.x / view_2d_zoom; - view_2d_offset.y -= p_scroll_vec.y / view_2d_zoom; + Vector2 scroll = SceneTree::get_singleton()->get_root()->get_screen_transform().affine_inverse().xform(p_scroll_vec); + view_2d_offset.x -= scroll.x / view_2d_zoom; + view_2d_offset.y -= scroll.y / view_2d_zoom; _update_view_2d(); }