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
 
 --------------------

Reply via email to