I think this is the simplest and best solution for now.
please apply john -- "Unless everyone else on earth is attending meetings I haven't been told about." - /. paranoia at its finest
Index: src/frontends/xforms/ChangeLog =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/ChangeLog,v retrieving revision 1.219 diff -u -p -r1.219 ChangeLog --- src/frontends/xforms/ChangeLog 2002/01/04 15:14:22 1.219 +++ src/frontends/xforms/ChangeLog 2002/01/07 08:46:48 @@ -1,3 +1,12 @@ +2002-01-07 John Levon <[EMAIL PROTECTED]> + + * FormTabular.h: + * FormTabular.C: + * form_tabular.h: + * form_tabular.C: + * forms/form_tabular.fd: ugly fix to get around + some of the UI problems (bug #110). + 2002-01-04 Jürgen Spitzmüller <[EMAIL PROTECTED]> * FormDocument.C: Recognize the default paper settings too Index: src/frontends/xforms/FormTabular.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/FormTabular.C,v retrieving revision 1.31 diff -u -p -r1.31 FormTabular.C --- src/frontends/xforms/FormTabular.C 2001/12/20 14:52:15 1.31 +++ src/frontends/xforms/FormTabular.C 2002/01/07 08:46:52 @@ -153,6 +153,9 @@ void FormTabular::build() void FormTabular::update() { + if (closing_) + return; + if (!inset_ || !inset_->tabular.get()) return; @@ -479,7 +482,20 @@ bool FormTabular::input(FL_OBJECT * ob, string special;; int cell = inset_->getActCell(); - + + // ugly hack to auto-apply the stuff that hasn't been + // yet. don't let this continue to exist ... + if (ob == dialog_->button_close) { + closing_ = true; + input(column_options_->input_column_width, 0); + input(cell_options_->input_mcolumn_width, 0); + input(column_options_->input_special_alignment, 0); + input(cell_options_->input_special_multialign, 0); + closing_ = false; + ok(); + return true; + } + if (actCell_ != cell) { update(); fl_set_object_label(dialog_->text_warning, Index: src/frontends/xforms/FormTabular.h =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/FormTabular.h,v retrieving revision 1.15 diff -u -p -r1.15 FormTabular.h --- src/frontends/xforms/FormTabular.h 2001/12/19 16:13:21 1.15 +++ src/frontends/xforms/FormTabular.h 2002/01/07 08:46:52 @@ -90,6 +90,8 @@ private: int actCell_; /// The ButtonController ButtonController<OkCancelReadOnlyPolicy, xformsBC> bc_; + /// if we are applying stuff during a close of the dialog + bool closing_; }; Index: src/frontends/xforms/form_tabular.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/form_tabular.C,v retrieving revision 1.21 diff -u -p -r1.21 form_tabular.C --- src/frontends/xforms/form_tabular.C 2001/12/19 16:13:21 1.21 +++ src/frontends/xforms/form_tabular.C 2002/01/07 08:46:53 @@ -33,7 +33,7 @@ FD_form_tabular * FormTabular::build_tab fl_set_button_shortcut(obj, scex(_(dummy)), 1); } fl_set_object_lsize(obj, FL_NORMAL_SIZE); - fl_set_object_callback(obj, C_FormBaseDeprecatedCancelCB, 0); + fl_set_object_callback(obj, C_FormBaseDeprecatedInputCB, 0); fdui->input_tabular_column = obj = fl_add_input(FL_NORMAL_INPUT, 65, 260, 60, 30, ""); fl_set_object_lsize(obj, FL_NORMAL_SIZE); fl_set_object_lalign(obj, FL_ALIGN_TOP_LEFT); Index: src/frontends/xforms/form_tabular.h =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/form_tabular.h,v retrieving revision 1.16 diff -u -p -r1.16 form_tabular.h --- src/frontends/xforms/form_tabular.h 2001/12/19 16:13:21 1.16 +++ src/frontends/xforms/form_tabular.h 2002/01/07 08:46:53 @@ -5,7 +5,7 @@ #define FD_form_tabular_h_ /** Callbacks, globals and object handlers **/ -extern "C" void C_FormBaseDeprecatedCancelCB(FL_OBJECT *, long); +extern "C" void C_FormBaseDeprecatedInputCB(FL_OBJECT *, long); extern "C" void C_FormBaseDeprecatedInputCB(FL_OBJECT *, long); Index: src/frontends/xforms/forms/form_tabular.fd =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/forms/form_tabular.fd,v retrieving revision 1.14 diff -u -p -r1.14 form_tabular.fd --- src/frontends/xforms/forms/form_tabular.fd 2001/12/19 16:13:21 1.14 +++ src/frontends/xforms/forms/form_tabular.fd 2002/01/07 08:46:55 @@ -64,7 +64,7 @@ shortcut: resize: FL_RESIZE_ALL gravity: FL_NoGravity FL_NoGravity name: button_close -callback: C_FormBaseDeprecatedCancelCB +callback: C_FormBaseDeprecatedInputCB argument: 0 --------------------