From 9b246d3c6c9c2b643b84ac8381570a538b1e406f Mon Sep 17 00:00:00 2001 From: GetAway Date: Sat, 4 Nov 2017 21:43:17 +0100 Subject: [PATCH] menue.cpp: add reverse search to find selectable item Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/cad8efec3c48a11869ddb3858b05c1f872328ab8 Author: GetAway Date: 2017-11-04 (Sat, 04 Nov 2017) --- src/gui/widget/menue.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/gui/widget/menue.cpp b/src/gui/widget/menue.cpp index e91a25b7f..f4e184686 100644 --- a/src/gui/widget/menue.cpp +++ b/src/gui/widget/menue.cpp @@ -1261,9 +1261,9 @@ void CMenuWidget::calcSize() void CMenuWidget::initSelectable() { - int pos = 0; + int pos = 0, npos = 0; if (selected > 0 && selected < (int)items.size()) - pos = selected; + npos = pos = selected; else selected = -1; @@ -1272,7 +1272,15 @@ void CMenuWidget::initSelectable() break; pos++; } - selected = pos; + if (pos == (int)items.size()) { + pos = npos; + while (pos > 1) { + if (items[pos]->isSelectable()) + break; + pos--; + } + } + selected = (pos == 0) ? -1 : pos; } void CMenuWidget::paint()