|
@@ -235,6 +235,10 @@ void ScrollContainer::_update_scrollbar_position() {
|
|
|
|
|
|
void ScrollContainer::_ensure_focused_visible(Control *p_control) {
|
|
void ScrollContainer::_ensure_focused_visible(Control *p_control) {
|
|
|
|
|
|
|
|
+ if (!follow_focus) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
if (is_a_parent_of(p_control)) {
|
|
if (is_a_parent_of(p_control)) {
|
|
Rect2 global_rect = get_global_rect();
|
|
Rect2 global_rect = get_global_rect();
|
|
Rect2 other_rect = p_control->get_global_rect();
|
|
Rect2 other_rect = p_control->get_global_rect();
|
|
@@ -506,6 +510,14 @@ void ScrollContainer::set_deadzone(int p_deadzone) {
|
|
deadzone = p_deadzone;
|
|
deadzone = p_deadzone;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+bool ScrollContainer::is_following_focus() const {
|
|
|
|
+ return follow_focus;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void ScrollContainer::set_follow_focus(int p_follow) {
|
|
|
|
+ follow_focus = p_follow;
|
|
|
|
+}
|
|
|
|
+
|
|
String ScrollContainer::get_configuration_warning() const {
|
|
String ScrollContainer::get_configuration_warning() const {
|
|
|
|
|
|
int found = 0;
|
|
int found = 0;
|
|
@@ -555,6 +567,8 @@ void ScrollContainer::_bind_methods() {
|
|
ClassDB::bind_method(D_METHOD("get_v_scroll"), &ScrollContainer::get_v_scroll);
|
|
ClassDB::bind_method(D_METHOD("get_v_scroll"), &ScrollContainer::get_v_scroll);
|
|
ClassDB::bind_method(D_METHOD("set_deadzone", "deadzone"), &ScrollContainer::set_deadzone);
|
|
ClassDB::bind_method(D_METHOD("set_deadzone", "deadzone"), &ScrollContainer::set_deadzone);
|
|
ClassDB::bind_method(D_METHOD("get_deadzone"), &ScrollContainer::get_deadzone);
|
|
ClassDB::bind_method(D_METHOD("get_deadzone"), &ScrollContainer::get_deadzone);
|
|
|
|
+ ClassDB::bind_method(D_METHOD("set_follow_focus", "enabled"), &ScrollContainer::set_follow_focus);
|
|
|
|
+ ClassDB::bind_method(D_METHOD("is_following_focus"), &ScrollContainer::is_following_focus);
|
|
|
|
|
|
ClassDB::bind_method(D_METHOD("get_h_scrollbar"), &ScrollContainer::get_h_scrollbar);
|
|
ClassDB::bind_method(D_METHOD("get_h_scrollbar"), &ScrollContainer::get_h_scrollbar);
|
|
ClassDB::bind_method(D_METHOD("get_v_scrollbar"), &ScrollContainer::get_v_scrollbar);
|
|
ClassDB::bind_method(D_METHOD("get_v_scrollbar"), &ScrollContainer::get_v_scrollbar);
|
|
@@ -562,6 +576,8 @@ void ScrollContainer::_bind_methods() {
|
|
ADD_SIGNAL(MethodInfo("scroll_started"));
|
|
ADD_SIGNAL(MethodInfo("scroll_started"));
|
|
ADD_SIGNAL(MethodInfo("scroll_ended"));
|
|
ADD_SIGNAL(MethodInfo("scroll_ended"));
|
|
|
|
|
|
|
|
+ ADD_PROPERTY(PropertyInfo(Variant::BOOL, "follow_focus"), "set_follow_focus", "is_following_focus");
|
|
|
|
+
|
|
ADD_GROUP("Scroll", "scroll_");
|
|
ADD_GROUP("Scroll", "scroll_");
|
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "scroll_horizontal_enabled"), "set_enable_h_scroll", "is_h_scroll_enabled");
|
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "scroll_horizontal_enabled"), "set_enable_h_scroll", "is_h_scroll_enabled");
|
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "scroll_horizontal"), "set_h_scroll", "get_h_scroll");
|
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "scroll_horizontal"), "set_h_scroll", "get_h_scroll");
|
|
@@ -593,6 +609,7 @@ ScrollContainer::ScrollContainer() {
|
|
scroll_v = true;
|
|
scroll_v = true;
|
|
|
|
|
|
deadzone = GLOBAL_GET("gui/common/default_scroll_deadzone");
|
|
deadzone = GLOBAL_GET("gui/common/default_scroll_deadzone");
|
|
|
|
+ follow_focus = false;
|
|
|
|
|
|
set_clip_contents(true);
|
|
set_clip_contents(true);
|
|
};
|
|
};
|