summaryrefslogtreecommitdiff
path: root/src/input_handler.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2012-10-29 19:17:37 +0100
committerMaxime Coste <frrrwww@gmail.com>2012-10-29 19:17:37 +0100
commit945f54daea7f827ad3a5ea0e90288599e62f43dd (patch)
tree6d7ccafc5ecfe3536fff19e7bbaf3ca6fc5307e3 /src/input_handler.cc
parent254d43856da7c268f42b3604a233b3257345c4ac (diff)
fix crashes when cycling through menu with an active filter
Diffstat (limited to 'src/input_handler.cc')
-rw-r--r--src/input_handler.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/input_handler.cc b/src/input_handler.cc
index c6c782af..4683b30f 100644
--- a/src/input_handler.cc
+++ b/src/input_handler.cc
@@ -183,7 +183,7 @@ public:
{
auto it = std::find_if(m_selected+1, m_choices.end(), match_filter);
if (it == m_choices.end())
- it = std::find_if(m_choices.begin(), m_selected+1, match_filter);
+ it = std::find_if(m_choices.begin(), m_selected, match_filter);
m_selected = it;
context.ui().menu_select(m_selected - m_choices.begin());
}
@@ -192,8 +192,8 @@ public:
key == Key(Key::Modifiers::Control, 'p') or
key == Key(Key::Modifiers::None, 'k'))
{
- ChoiceList::const_reverse_iterator selected(m_selected);
- auto it = std::find_if(selected, m_choices.rend(), match_filter);
+ ChoiceList::const_reverse_iterator selected(m_selected+1);
+ auto it = std::find_if(selected+1, m_choices.rend(), match_filter);
if (it == m_choices.rend())
it = std::find_if(m_choices.rbegin(), selected, match_filter);
m_selected = it.base()-1;