From 57479af50a1eab2260901f87a078601b6f988aff Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 11 Dec 2019 08:31:41 +0100 Subject: [PATCH] Touch cannot traverse OPAQUE windows (2nd attempt) --- radio/src/thirdparty/libopenui/src/menu.cpp | 3 ++- radio/src/thirdparty/libopenui/src/window.cpp | 2 +- radio/src/thirdparty/libopenui/src/window.h | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/radio/src/thirdparty/libopenui/src/menu.cpp b/radio/src/thirdparty/libopenui/src/menu.cpp index 394fdd626..dff52ef0c 100644 --- a/radio/src/thirdparty/libopenui/src/menu.cpp +++ b/radio/src/thirdparty/libopenui/src/menu.cpp @@ -61,7 +61,8 @@ bool MenuBody::onTouchEnd(coord_t x, coord_t y) { int index = y / MENUS_LINE_HEIGHT; lines[index].onPress(); - return false; // = close the menu (inverted so that click outside the menu closes it) + getParent()->getParent()->deleteLater(); + return true; } #endif diff --git a/radio/src/thirdparty/libopenui/src/window.cpp b/radio/src/thirdparty/libopenui/src/window.cpp index 1accc4896..5916b6f04 100644 --- a/radio/src/thirdparty/libopenui/src/window.cpp +++ b/radio/src/thirdparty/libopenui/src/window.cpp @@ -341,7 +341,7 @@ bool Window::onTouchEnd(coord_t x, coord_t y) } } - return false; + return windowFlags & OPAQUE; } bool Window::onTouchSlide(coord_t x, coord_t y, coord_t startX, coord_t startY, coord_t slideX, coord_t slideY) diff --git a/radio/src/thirdparty/libopenui/src/window.h b/radio/src/thirdparty/libopenui/src/window.h index c8f18338c..b8c1285ef 100644 --- a/radio/src/thirdparty/libopenui/src/window.h +++ b/radio/src/thirdparty/libopenui/src/window.h @@ -297,7 +297,7 @@ class Window { void fullPaint(BitmapBuffer * dc); - bool pointInRect(coord_t x, coord_t y, rect_t & rect) + static bool pointInRect(coord_t x, coord_t y, rect_t & rect) { return (x >= rect.x && x < rect.x + rect.w && y >= rect.y && y < rect.y + rect.h); }