diff --git a/reactos/base/shell/explorer/taskbar/startmenu.cpp b/reactos/base/shell/explorer/taskbar/startmenu.cpp index 15cb5387757..e2a92ccfb1e 100644 --- a/reactos/base/shell/explorer/taskbar/startmenu.cpp +++ b/reactos/base/shell/explorer/taskbar/startmenu.cpp @@ -707,9 +707,15 @@ bool StartMenu::Navigate(int step) for(;;) { idx += step; - if (idx<0 || idx>(int)_buttons.size()) + if ((int)_buttons.size() <= 1 && (idx<0 || idx>(int)_buttons.size())) break; + if (idx<0) + idx += _buttons.size(); + + if (idx>(int)_buttons.size()) + idx -= _buttons.size()+1; + if (SelectButtonIndex(idx, false)) return true; }