diff --git a/src/graphics/ui/elements/BasePanel.hpp b/src/graphics/ui/elements/BasePanel.hpp index 168776a9b..be61ebc56 100644 --- a/src/graphics/ui/elements/BasePanel.hpp +++ b/src/graphics/ui/elements/BasePanel.hpp @@ -8,6 +8,7 @@ namespace gui { virtual ~BasePanel() = default; virtual void setOrientation(Orientation orientation) { + this->mainScrollDir = orientation; this->orientation = orientation; refresh(); } diff --git a/src/graphics/ui/elements/Container.cpp b/src/graphics/ui/elements/Container.cpp index 3d03c2fe3..a9ab71e9d 100644 --- a/src/graphics/ui/elements/Container.cpp +++ b/src/graphics/ui/elements/Container.cpp @@ -114,7 +114,7 @@ void Container::act(float delta) { void Container::scrolled(int value) { auto size = getSize(); - bool isVertical = actualLengthY > size.y; + bool isVertical = mainScrollDir == Orientation::VERTICAL; int diff = (isVertical ? actualLengthY - size.y : actualLengthX - size.x); int& scroll = (isVertical ? scrollY : scrollX); @@ -245,6 +245,7 @@ void Container::setSize(const glm::vec2& size) { for (auto& node : nodes) { node->reposition(); } + scrolled(0); } int Container::getScrollStep() const { diff --git a/src/graphics/ui/elements/Container.hpp b/src/graphics/ui/elements/Container.hpp index 36c366010..b5664c139 100644 --- a/src/graphics/ui/elements/Container.hpp +++ b/src/graphics/ui/elements/Container.hpp @@ -20,6 +20,7 @@ namespace gui { int actualLengthY = 0; int actualLengthX = 0; bool scrollable = true; + Orientation mainScrollDir = Orientation::VERTICAL; bool isScrolling() const { return scrollbarTriggered;