diff --git a/src/Fl_Button.cxx b/src/Fl_Button.cxx index 044d1e443..dec3fdd5f 100644 --- a/src/Fl_Button.cxx +++ b/src/Fl_Button.cxx @@ -130,11 +130,13 @@ int Fl_Button::handle(int event) { if (type() == FL_RADIO_BUTTON && !value_) { setonly(); set_changed(); - if (when() & FL_WHEN_CHANGED) do_callback(); + if (when() & (FL_WHEN_CHANGED|FL_WHEN_RELEASE) ) + do_callback(); } else if (type() == FL_TOGGLE_BUTTON) { value(!value()); set_changed(); - if (when() & FL_WHEN_CHANGED) do_callback(); + if (when() & (FL_WHEN_CHANGED|FL_WHEN_RELEASE)) + do_callback(); } else if (when() & FL_WHEN_RELEASE) do_callback(); return 1; case FL_FOCUS :