summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2007-06-07 17:38:49 +0000
committerMatthias Melcher <fltk@matthiasm.com>2007-06-07 17:38:49 +0000
commit5d7d16cc8c106a2af8dc1985cb5d331c4aa6e62e (patch)
tree1ad446be430fee5b0da82cd0c40680c5b48b97a6
parent5ba77af1ec7e4f2d0897ea12baf258bbeacaa410 (diff)
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
-rw-r--r--FL/Fl_Input_Choice.H7
-rw-r--r--test/input_choice.cxx4
2 files changed, 11 insertions, 0 deletions
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) {