diff options
| author | Matthias Melcher <fltk@matthiasm.com> | 2007-01-18 09:30:04 +0000 |
|---|---|---|
| committer | Matthias Melcher <fltk@matthiasm.com> | 2007-01-18 09:30:04 +0000 |
| commit | 5f0156cd027db7bc85b8395ad77e88cde36439c4 (patch) | |
| tree | e9d6cbc8592e1af9a62771de509b6a123515fb7a /src/Fl_Menu.cxx | |
| parent | 08216b4fac9a1b09b40f9862e95e095707ae5ec0 (diff) | |
Fixed dismissing buttons in menu bars (STR #1494)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5605 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_Menu.cxx')
| -rw-r--r-- | src/Fl_Menu.cxx | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/Fl_Menu.cxx b/src/Fl_Menu.cxx index 2f06f4850..f0739e9a0 100644 --- a/src/Fl_Menu.cxx +++ b/src/Fl_Menu.cxx @@ -689,8 +689,23 @@ int menuwindow::early_hide_handle(int e) { } for (mymenu = pp.nummenus-1; ; mymenu--) { item = pp.p[mymenu]->find_selected(mx, my); - if (item >= 0) break; - if (mymenu <= 0) return 0; + if (item >= 0) + break; + if (mymenu <= 0) { + // buttons in menubars must be deselected if we move outside of them! + if (pp.menu_number==-1 && e==FL_PUSH) { + pp.state = DONE_STATE; + return 1; + } + if (pp.current_item && pp.menu_number==0 && !pp.current_item->submenu()) { + if (e==FL_PUSH) + pp.state = DONE_STATE; + setitem(0, -1, 0); + return 1; + } + // all others can stay selected + return 0; + } } if (my == 0 && item > 0) setitem(mymenu, item - 1); else setitem(mymenu, item); |
