From 5d7d16cc8c106a2af8dc1985cb5d331c4aa6e62e Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Thu, 7 Jun 2007 17:38:49 +0000 Subject: [PATCH] Making sure that the 'changed' flag is set on every menu pulldown. (STR #1693) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5890 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- FL/Fl_Input_Choice.H | 7 +++++++ test/input_choice.cxx | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/FL/Fl_Input_Choice.H b/FL/Fl_Input_Choice.H index 45971bc4b..ce228b780 100644 --- a/FL/Fl_Input_Choice.H +++ b/FL/Fl_Input_Choice.H @@ -62,6 +62,7 @@ class Fl_Input_Choice : public Fl_Group { const Fl_Menu_Item *item = o->menubutton()->mvalue(); if ( item && item->flags & (FL_SUBMENU|FL_SUBMENU_POINTER) ) return; // ignore submenus o->inp_->value(o->menu_->text()); + o->inp_->set_changed(); o->do_callback(); } @@ -101,6 +102,12 @@ public: int changed() const { return inp_->changed(); } + void clear_changed() { + return inp_->clear_changed(); + } + void set_changed() { + return inp_->set_changed(); + } void clear() { menu_->clear(); } diff --git a/test/input_choice.cxx b/test/input_choice.cxx index 6f7471330..80cce18a2 100644 --- a/test/input_choice.cxx +++ b/test/input_choice.cxx @@ -32,6 +32,10 @@ void buttcb(Fl_Widget*,void*data) { flag ^= 1; if ( flag ) in->activate(); else in->deactivate(); + if (in->changed()) { + printf("Callback: changed() is set\n"); + in->clear_changed(); + } } void input_choice_cb(Fl_Widget*,void*data) {