diff --git a/src/Fl_Menu.cxx b/src/Fl_Menu.cxx index 8f350aa62..ab9f2d4a6 100644 --- a/src/Fl_Menu.cxx +++ b/src/Fl_Menu.cxx @@ -630,7 +630,7 @@ static void setitem(int m, int n) { static int forward(int menu) { // go to next item in menu menu if possible menustate &pp = *p; - // Fl_Menu_Button can generate menu=-1. This line fixes it and selectes the first item. + // Fl_Menu_Button can generate menu=-1. This line fixes it and selects the first item. if (menu==-1) menu = 0; menuwindow &m = *(pp.p[menu]); @@ -643,6 +643,9 @@ static int forward(int menu) { // go to next item in menu menu if possible } static int backward(int menu) { // previous item in menu menu if possible + // `menu` is -1 if no item is currently selected, we return 0 + if (menu<0) + return 0; menustate &pp = *p; menuwindow &m = *(pp.p[menu]); int item = (menu == pp.menu_number) ? pp.item_number : m.selected;