Allow ScrollBar params of a ScrollContainer to be modified in _ready()
Initializes the sizes of the ScrollContainer and its associated ScrollBars in _ready() to allow scroll values to be set in GDScript initially.
This commit is contained in:
parent
6cebb8c117
commit
b8610dbd31
@ -264,17 +264,7 @@ void ScrollContainer::_ensure_focused_visible(Control *p_control) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScrollContainer::_notification(int p_what) {
|
void ScrollContainer::_update_dimensions() {
|
||||||
if (p_what == NOTIFICATION_ENTER_TREE || p_what == NOTIFICATION_THEME_CHANGED || p_what == NOTIFICATION_LAYOUT_DIRECTION_CHANGED || p_what == NOTIFICATION_TRANSLATION_CHANGED) {
|
|
||||||
_updating_scrollbars = true;
|
|
||||||
call_deferred("_update_scrollbar_position");
|
|
||||||
};
|
|
||||||
|
|
||||||
if (p_what == NOTIFICATION_READY) {
|
|
||||||
get_viewport()->connect("gui_focus_changed", callable_mp(this, &ScrollContainer::_ensure_focused_visible));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (p_what == NOTIFICATION_SORT_CHILDREN) {
|
|
||||||
child_max_size = Size2(0, 0);
|
child_max_size = Size2(0, 0);
|
||||||
Size2 size = get_size();
|
Size2 size = get_size();
|
||||||
Point2 ofs;
|
Point2 ofs;
|
||||||
@ -333,6 +323,21 @@ void ScrollContainer::_notification(int p_what) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
update();
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScrollContainer::_notification(int p_what) {
|
||||||
|
if (p_what == NOTIFICATION_ENTER_TREE || p_what == NOTIFICATION_THEME_CHANGED || p_what == NOTIFICATION_LAYOUT_DIRECTION_CHANGED || p_what == NOTIFICATION_TRANSLATION_CHANGED) {
|
||||||
|
_updating_scrollbars = true;
|
||||||
|
call_deferred("_update_scrollbar_position");
|
||||||
|
};
|
||||||
|
|
||||||
|
if (p_what == NOTIFICATION_READY) {
|
||||||
|
get_viewport()->connect("gui_focus_changed", callable_mp(this, &ScrollContainer::_ensure_focused_visible));
|
||||||
|
_update_dimensions();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (p_what == NOTIFICATION_SORT_CHILDREN) {
|
||||||
|
_update_dimensions();
|
||||||
};
|
};
|
||||||
|
|
||||||
if (p_what == NOTIFICATION_DRAW) {
|
if (p_what == NOTIFICATION_DRAW) {
|
||||||
|
@ -69,6 +69,7 @@ protected:
|
|||||||
Size2 get_minimum_size() const override;
|
Size2 get_minimum_size() const override;
|
||||||
|
|
||||||
void _gui_input(const Ref<InputEvent> &p_gui_input);
|
void _gui_input(const Ref<InputEvent> &p_gui_input);
|
||||||
|
void _update_dimensions();
|
||||||
void _notification(int p_what);
|
void _notification(int p_what);
|
||||||
|
|
||||||
void _scroll_moved(float);
|
void _scroll_moved(float);
|
||||||
|
Loading…
Reference in New Issue
Block a user