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
This commit is contained in:
Matthias Melcher 2007-06-07 17:38:49 +00:00
parent 5ba77af1ec
commit 5d7d16cc8c
2 changed files with 11 additions and 0 deletions

View File

@ -62,6 +62,7 @@ class Fl_Input_Choice : public Fl_Group {
const Fl_Menu_Item *item = o->menubutton()->mvalue(); const Fl_Menu_Item *item = o->menubutton()->mvalue();
if ( item && item->flags & (FL_SUBMENU|FL_SUBMENU_POINTER) ) return; // ignore submenus if ( item && item->flags & (FL_SUBMENU|FL_SUBMENU_POINTER) ) return; // ignore submenus
o->inp_->value(o->menu_->text()); o->inp_->value(o->menu_->text());
o->inp_->set_changed();
o->do_callback(); o->do_callback();
} }
@ -101,6 +102,12 @@ public:
int changed() const { int changed() const {
return inp_->changed(); return inp_->changed();
} }
void clear_changed() {
return inp_->clear_changed();
}
void set_changed() {
return inp_->set_changed();
}
void clear() { void clear() {
menu_->clear(); menu_->clear();
} }

View File

@ -32,6 +32,10 @@ void buttcb(Fl_Widget*,void*data) {
flag ^= 1; flag ^= 1;
if ( flag ) in->activate(); if ( flag ) in->activate();
else in->deactivate(); else in->deactivate();
if (in->changed()) {
printf("Callback: changed() is set\n");
in->clear_changed();
}
} }
void input_choice_cb(Fl_Widget*,void*data) { void input_choice_cb(Fl_Widget*,void*data) {