From 4f6627e6db266acb0859717938297d24e3bcbb78 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 25 Mar 2020 09:33:49 +0100 Subject: [PATCH] Scroll issues with ExpansionPanel --- radio/src/thirdparty/libopenui/src/expansion_panel.h | 4 ++-- radio/src/thirdparty/libopenui/src/window.h | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/radio/src/thirdparty/libopenui/src/expansion_panel.h b/radio/src/thirdparty/libopenui/src/expansion_panel.h index d44e798a5..b624996c7 100644 --- a/radio/src/thirdparty/libopenui/src/expansion_panel.h +++ b/radio/src/thirdparty/libopenui/src/expansion_panel.h @@ -26,7 +26,7 @@ class ExpansionPanel; class ExpansionPanelHeader: virtual public FormGroup { public: - ExpansionPanelHeader(ExpansionPanel * parent); + explicit ExpansionPanelHeader(ExpansionPanel * parent); void onEvent(event_t event) override; @@ -92,7 +92,7 @@ bool ExpansionPanelHeader::onTouchEnd(coord_t, coord_t) void ExpansionPanelHeader::onEvent(event_t event) { - ExpansionPanel * panel = static_cast(parent); + auto panel = static_cast(parent); if (event == EVT_KEY_BREAK(KEY_ENTER)) { panel->toggle(); diff --git a/radio/src/thirdparty/libopenui/src/window.h b/radio/src/thirdparty/libopenui/src/window.h index 3b1a72f98..f4e4d7202 100644 --- a/radio/src/thirdparty/libopenui/src/window.h +++ b/radio/src/thirdparty/libopenui/src/window.h @@ -269,7 +269,12 @@ class Window { { innerHeight = h; if (height() >= h) { - scrollPositionY = 0; + setScrollPositionY(0); + } + else { + coord_t maxScrollPosition = h - height(); + if (scrollPositionY > maxScrollPosition) + setScrollPositionY(maxScrollPosition); } }