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; |