diff options
author | Yuri Sizov <yuris@humnom.net> | 2021-12-02 17:57:53 +0300 |
---|---|---|
committer | Yuri Sizov <yuris@humnom.net> | 2021-12-02 17:57:53 +0300 |
commit | c33f407d27a44ae5705fd2d907403af05682d0eb (patch) | |
tree | 48492791120fe424b75412f77219c697e0fb4948 | |
parent | 702ffc6243bb1073a454fc713a5a3c2b44b59c93 (diff) |
Allow scrolling theme preview when the control picker is active
-rw-r--r-- | editor/plugins/theme_editor_preview.cpp | 6 | ||||
-rw-r--r-- | editor/plugins/theme_editor_preview.h | 1 | ||||
-rw-r--r-- | scene/gui/scroll_container.h | 3 |
3 files changed, 8 insertions, 2 deletions
diff --git a/editor/plugins/theme_editor_preview.cpp b/editor/plugins/theme_editor_preview.cpp index f13fcb005f..86b0fc0eaf 100644 --- a/editor/plugins/theme_editor_preview.cpp +++ b/editor/plugins/theme_editor_preview.cpp @@ -157,6 +157,7 @@ void ThemeEditorPreview::_gui_input_picker_overlay(const Ref<InputEvent> &p_even emit_signal(SNAME("control_picked"), theme_type); picker_button->set_pressed(false); picker_overlay->set_visible(false); + return; } } @@ -167,6 +168,9 @@ void ThemeEditorPreview::_gui_input_picker_overlay(const Ref<InputEvent> &p_even hovered_control = _find_hovered_control(preview_content, mp); picker_overlay->update(); } + + // Forward input to the scroll container underneath to allow scrolling. + preview_container->gui_input(p_event); } void ThemeEditorPreview::_reset_picker_overlay() { @@ -223,7 +227,7 @@ ThemeEditorPreview::ThemeEditorPreview() { preview_body->set_v_size_flags(SIZE_EXPAND_FILL); add_child(preview_body); - ScrollContainer *preview_container = memnew(ScrollContainer); + preview_container = memnew(ScrollContainer); preview_container->set_enable_v_scroll(true); preview_container->set_enable_h_scroll(true); preview_body->add_child(preview_container); diff --git a/editor/plugins/theme_editor_preview.h b/editor/plugins/theme_editor_preview.h index f973119257..73422b4fba 100644 --- a/editor/plugins/theme_editor_preview.h +++ b/editor/plugins/theme_editor_preview.h @@ -55,6 +55,7 @@ class ThemeEditorPreview : public VBoxContainer { GDCLASS(ThemeEditorPreview, VBoxContainer); + ScrollContainer *preview_container; ColorRect *preview_bg; MarginContainer *preview_overlay; Control *picker_overlay; diff --git a/scene/gui/scroll_container.h b/scene/gui/scroll_container.h index 9f4ec558dc..9c87d07f66 100644 --- a/scene/gui/scroll_container.h +++ b/scene/gui/scroll_container.h @@ -68,7 +68,6 @@ class ScrollContainer : public Container { protected: Size2 get_minimum_size() const override; - virtual void gui_input(const Ref<InputEvent> &p_gui_input) override; void _gui_focus_changed(Control *p_control); void _update_dimensions(); void _notification(int p_what); @@ -80,6 +79,8 @@ protected: void _update_scrollbar_position(); public: + virtual void gui_input(const Ref<InputEvent> &p_gui_input) override; + void set_h_scroll(int p_pos); int get_h_scroll() const; |