using SigC::slot;
-extern "C" int C_FormBaseDeprecatedWMHideCB(FL_FORM * ob, void * d)
-{
- return FormBaseDeprecated::WMHideCB(ob, d);
-}
-extern "C" void C_FormBaseDeprecatedApplyCB(FL_OBJECT * ob, long d)
-{
- FormBaseDeprecated::ApplyCB(ob, d);
-}
-extern "C" void C_FormBaseDeprecatedOKCB(FL_OBJECT * ob, long d)
-{
- FormBaseDeprecated::OKCB(ob, d);
-}
-extern "C" void C_FormBaseDeprecatedCancelCB(FL_OBJECT * ob, long d)
-{
- FormBaseDeprecated::CancelCB(ob, d);
-}
-extern "C" void C_FormBaseDeprecatedInputCB(FL_OBJECT * ob, long d)
-{
- FormBaseDeprecated::InputCB(ob, d);
-}
-extern "C" void C_FormBaseDeprecatedRestoreCB(FL_OBJECT * ob, long d)
-{
- FormBaseDeprecated::RestoreCB(ob, d);
+extern "C" {
+
+ static
+ int C_FormBaseDeprecatedWMHideCB(FL_FORM * ob, void * d)
+ {
+ return FormBaseDeprecated::WMHideCB(ob, d);
+ }
+
+ void C_FormBaseDeprecatedApplyCB(FL_OBJECT * ob, long d)
+ {
+ FormBaseDeprecated::ApplyCB(ob, d);
+ }
+
+ void C_FormBaseDeprecatedOKCB(FL_OBJECT * ob, long d)
+ {
+ FormBaseDeprecated::OKCB(ob, d);
+ }
+
+ void C_FormBaseDeprecatedCancelCB(FL_OBJECT * ob, long d)
+ {
+ FormBaseDeprecated::CancelCB(ob, d);
+ }
+
+ void C_FormBaseDeprecatedInputCB(FL_OBJECT * ob, long d)
+ {
+ FormBaseDeprecated::InputCB(ob, d);
+ }
+
+ void C_FormBaseDeprecatedRestoreCB(FL_OBJECT * ob, long d)
+ {
+ FormBaseDeprecated::RestoreCB(ob, d);
+ }
}
FormBaseDeprecated * pre =
static_cast<FormBaseDeprecated*>(ob->form->u_vdata);
lyx::Assert(pre);
+
+ // It is possible to set the choice to 0 when using the
+ // keyboard shortcuts. This work-around deals with the problem.
+ if (ob && ob->objclass == FL_CHOICE && fl_get_choice(ob) < 1) {
+ fl_set_choice(ob, 1);
+ }
+
pre->bc().valid(pre->input(ob, data));
}