From 7595a9061db0ad60ff484368b59c65674a521fa2 Mon Sep 17 00:00:00 2001 From: Jordyfel Date: Tue, 23 Sep 2025 15:23:57 +0300 Subject: [PATCH] Cache editor setting queried in hot path in 2D editor --- editor/scene/canvas_item_editor_plugin.cpp | 5 +++-- editor/scene/canvas_item_editor_plugin.h | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/editor/scene/canvas_item_editor_plugin.cpp b/editor/scene/canvas_item_editor_plugin.cpp index 5d36abf477e..2f231cab9aa 100644 --- a/editor/scene/canvas_item_editor_plugin.cpp +++ b/editor/scene/canvas_item_editor_plugin.cpp @@ -2754,7 +2754,7 @@ void CanvasItemEditor::_gui_input_viewport(const Ref &p_event) { Ref mb = p_event; bool release_lmb = (mb.is_valid() && !mb->is_pressed() && mb->get_button_index() == MouseButton::LEFT); // Required to properly release some stuff (e.g. selection box) while panning. - if (EDITOR_GET("editors/panning/simple_panning") || !pan_pressed || release_lmb) { + if (simple_panning || !pan_pressed || release_lmb) { accepted = true; if (_gui_input_rulers_and_guides(p_event)) { // print_line("Rulers and guides"); @@ -4143,7 +4143,8 @@ void CanvasItemEditor::_update_editor_settings() { context_toolbar_panel->add_theme_style_override(SceneStringName(panel), get_theme_stylebox(SNAME("ContextualToolbar"), EditorStringName(EditorStyles))); - panner->setup((ViewPanner::ControlScheme)EDITOR_GET("editors/panning/2d_editor_panning_scheme").operator int(), ED_GET_SHORTCUT("canvas_item_editor/pan_view"), bool(EDITOR_GET("editors/panning/simple_panning"))); + simple_panning = EDITOR_GET("editors/panning/simple_panning"); + panner->setup((ViewPanner::ControlScheme)EDITOR_GET("editors/panning/2d_editor_panning_scheme").operator int(), ED_GET_SHORTCUT("canvas_item_editor/pan_view"), simple_panning); panner->set_scroll_speed(EDITOR_GET("editors/panning/2d_editor_pan_speed")); panner->setup_warped_panning(get_viewport(), EDITOR_GET("editors/panning/warped_mouse_panning")); panner->set_zoom_style((ViewPanner::ZoomStyle)EDITOR_GET("editors/panning/zoom_style").operator int()); diff --git a/editor/scene/canvas_item_editor_plugin.h b/editor/scene/canvas_item_editor_plugin.h index d8ee49bfb77..460acbec127 100644 --- a/editor/scene/canvas_item_editor_plugin.h +++ b/editor/scene/canvas_item_editor_plugin.h @@ -260,6 +260,7 @@ private: int ruler_font_size = 8; Point2 node_create_position; real_t grab_distance = 0.0; + bool simple_panning = false; MenuOption last_option;