diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 2006-01-17 15:02:36 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 2006-01-17 15:02:36 +0000 |
| commit | 826eb45715c0209a081ae4603fdb4067f311fd19 (patch) | |
| tree | 0f1f4069ee857c05c95f8572f2c87cb618ea42c3 /src/Fl_Menu.cxx | |
| parent | c1c84a620a892bac0c15e95171cb55d32d75b4df (diff) | |
Clicking outside a menu window dismisses it (STR #1144)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4765 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_Menu.cxx')
| -rw-r--r-- | src/Fl_Menu.cxx | 8 |
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; |
