diff --git a/radio/src/thirdparty/libopenui/src/window.cpp b/radio/src/thirdparty/libopenui/src/window.cpp index 5fa606e96..f5022b4df 100644 --- a/radio/src/thirdparty/libopenui/src/window.cpp +++ b/radio/src/thirdparty/libopenui/src/window.cpp @@ -294,6 +294,18 @@ bool Window::isChildVisible(const Window * window) const return false; } +void Window::setInsideParentScrollingArea() +{ + Window * parent = getParent(); + while (parent && parent->getWindowFlags() & FORWARD_SCROLL) { + parent = parent->parent; + } + if (parent) { + parent->scrollTo(this); + invalidate(); + } +} + void Window::paintChildren(BitmapBuffer * dc, std::list::iterator it) { coord_t x = dc->getOffsetX(); diff --git a/radio/src/thirdparty/libopenui/src/window.h b/radio/src/thirdparty/libopenui/src/window.h index 888f3c245..0f8c15bbe 100644 --- a/radio/src/thirdparty/libopenui/src/window.h +++ b/radio/src/thirdparty/libopenui/src/window.h @@ -337,6 +337,8 @@ class Window return parent && right() >= parent->getScrollPositionX() && left() <= parent->getScrollPositionX() + parent->width(); } + void setInsideParentScrollingArea(); + void drawVerticalScrollbar(BitmapBuffer * dc); void drawHorizontalScrollbar(BitmapBuffer * dc);