summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Fl_Menu.cxx8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/Fl_Menu.cxx b/src/Fl_Menu.cxx
index 9b61e3098..f4ce0a7af 100644
--- a/src/Fl_Menu.cxx
+++ b/src/Fl_Menu.cxx
@@ -595,6 +595,14 @@ int menuwindow::handle(int e) {
int mx = Fl::event_x_root();
int my = Fl::event_y_root();
int item=0; int mymenu;
+ if (e == FL_PUSH &&
+ (mx < x() || mx >= (x() + w()) ||
+ my < y() || my >= (y() + h()))) {
+ // Clicking outside menu cancels it...
+ setitem(0, -1, 0);
+ pp.state = DONE_STATE;
+ return 1;
+ }
for (mymenu = pp.nummenus-1; ; mymenu--) {
item = pp.p[mymenu]->find_selected(mx, my);
if (item >= 0) break;