From f9a2d65bb36acfa81174b5644b70475f09a10579 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Sat, 7 May 2011 07:15:39 +0000 Subject: Fix STR #2619. An extra FL_MOVE event is sent on X11 after the menu item is selected by the keyboard. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8641 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_Menu.cxx | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/Fl_Menu.cxx b/src/Fl_Menu.cxx index 5f3f89b32..bc0f74bce 100644 --- a/src/Fl_Menu.cxx +++ b/src/Fl_Menu.cxx @@ -612,7 +612,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 geberate menu=-1. This line fixes it and selectes the first item. + // Fl_Menu_Button can generate menu=-1. This line fixes it and selectes the first item. if (menu==-1) menu = 0; menuwindow &m = *(pp.p[menu]); @@ -729,16 +729,17 @@ int menuwindow::early_hide_handle(int e) { } } break; + case FL_MOVE: +#if ! (defined(WIN32) || defined(__APPLE__)) + if (pp.state == DONE_STATE) { + return 1; // Fix for STR #2619 + } + /* FALLTHROUGH */ +#endif case FL_ENTER: - case FL_MOVE: case FL_PUSH: case FL_DRAG: { -#ifdef __QNX__ - // STR 704: workaround QNX X11 bug - in QNX a FL_MOVE event is sent - // right after FL_RELEASE... - if (pp.state == DONE_STATE) return 1; -#endif // __QNX__ int mx = Fl::event_x_root(); int my = Fl::event_y_root(); int item=0; int mymenu = pp.nummenus-1; -- cgit v1.2.3