From fedeac3f088849ee64bc1a5e8179105ef0a71617 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Tue, 19 Jan 2021 23:17:41 +0300 Subject: [PATCH] Removed redundant property of current selected item from menu. --- ui/widgets/menu/menu.cpp | 22 +++++++++++----------- ui/widgets/menu/menu.h | 1 - 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/ui/widgets/menu/menu.cpp b/ui/widgets/menu/menu.cpp index 217e8f0..616236a 100644 --- a/ui/widgets/menu/menu.cpp +++ b/ui/widgets/menu/menu.cpp @@ -281,20 +281,20 @@ void Menu::clearMouseSelection() { } void Menu::setSelected(int selected) { - if (selected >= _actions.size()) { + if (selected >= _actionWidgets.size()) { selected = -1; } - if (_selected != selected) { - const auto source = _mouseSelection - ? TriggeredSource::Mouse - : TriggeredSource::Keyboard; - if (_selected >= 0) { - _actionWidgets[_selected]->setSelected(false, source); - } - _selected = selected; - if (_selected >= 0) { - _actionWidgets[_selected]->setSelected(true, source); + const auto source = _mouseSelection + ? TriggeredSource::Mouse + : TriggeredSource::Keyboard; + if (const auto selectedItem = findSelectedAction()) { + if (selectedItem->index() == selected) { + return; } + selectedItem->setSelected(false, source); + } + if (selected >= 0) { + _actionWidgets[selected]->setSelected(true, source); } } diff --git a/ui/widgets/menu/menu.h b/ui/widgets/menu/menu.h index 9f3d265..511fa8d 100644 --- a/ui/widgets/menu/menu.h +++ b/ui/widgets/menu/menu.h @@ -119,7 +119,6 @@ private: bool _mouseSelection = false; - int _selected = -1; bool _childShown = false; rpl::event_stream<> _resizesFromInner;