summaryrefslogtreecommitdiff
path: root/src/Fl_Menu_Button.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Fl_Menu_Button.cxx')
-rw-r--r--src/Fl_Menu_Button.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/Fl_Menu_Button.cxx b/src/Fl_Menu_Button.cxx
index 80768a6e0..a3c13a829 100644
--- a/src/Fl_Menu_Button.cxx
+++ b/src/Fl_Menu_Button.cxx
@@ -51,6 +51,8 @@ const Fl_Menu_Item* Fl_Menu_Button::popup() {
const Fl_Menu_Item* m;
pressed_menu_button_ = this;
redraw();
+ Fl_Widget *mb = this;
+ Fl::watch_widget_pointer(mb);
if (!box() || type()) {
m = menu()->popup(Fl::event_x(), Fl::event_y(), label(), mvalue(), this);
} else {
@@ -58,7 +60,8 @@ const Fl_Menu_Item* Fl_Menu_Button::popup() {
}
picked(m);
pressed_menu_button_ = 0;
- redraw();
+ if (mb) mb->redraw();
+ Fl::release_widget_pointer(mb);
return m;
}