diff options
| author | Rémi Verschelde <rverschelde@gmail.com> | 2024-07-25 09:15:06 +0200 |
|---|---|---|
| committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-07-25 09:15:06 +0200 |
| commit | 73bcfec23abca773ed3579731fd8d220ad4e07e0 (patch) | |
| tree | 8c968ec364f41489b1d3ac65a662a7396b8329a9 | |
| parent | 2f2d1a7e68d315e5f26cde30532a51087536c9f6 (diff) | |
| parent | 7e549aa52e2d5c2f4a893907937a052d57cb33b0 (diff) | |
| download | redot-engine-73bcfec23abca773ed3579731fd8d220ad4e07e0.tar.gz | |
Merge pull request #94621 from Giganzo/scroll-container-rtl-fix
ScrollContainer: Fix RTL on follow focus
| -rw-r--r-- | scene/gui/scroll_container.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/scene/gui/scroll_container.cpp b/scene/gui/scroll_container.cpp index 66f18f1c14..d96809b67a 100644 --- a/scene/gui/scroll_container.cpp +++ b/scene/gui/scroll_container.cpp @@ -279,10 +279,10 @@ void ScrollContainer::ensure_control_visible(Control *p_control) { Rect2 global_rect = get_global_rect(); Rect2 other_rect = p_control->get_global_rect(); - float right_margin = v_scroll->is_visible() ? v_scroll->get_size().x : 0.0f; + float side_margin = v_scroll->is_visible() ? v_scroll->get_size().x : 0.0f; float bottom_margin = h_scroll->is_visible() ? h_scroll->get_size().y : 0.0f; - Vector2 diff = Vector2(MAX(MIN(other_rect.position.x, global_rect.position.x), other_rect.position.x + other_rect.size.x - global_rect.size.x + (!is_layout_rtl() ? right_margin : 0.0f)), + Vector2 diff = Vector2(MAX(MIN(other_rect.position.x - (is_layout_rtl() ? side_margin : 0.0f), global_rect.position.x), other_rect.position.x + other_rect.size.x - global_rect.size.x + (!is_layout_rtl() ? side_margin : 0.0f)), MAX(MIN(other_rect.position.y, global_rect.position.y), other_rect.position.y + other_rect.size.y - global_rect.size.y + bottom_margin)); set_h_scroll(get_h_scroll() + (diff.x - global_rect.position.x)); |
