Jean-Marc Lasgouttes wrote: > I am ready to apply patches to reLyX in 1.3.x as long as they are > low-risk.
OK, not reLyX, but here is a safe and well-tested one (bug 849). Please apply to 1.3 and 1.4 Thanks, Jürgen. P.S.: I am really interested in fixing bugs in the stable series, as long as time permits.
Index: src/frontends/qt2/ChangeLog =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/qt2/ChangeLog,v retrieving revision 1.389 diff -u -r1.389 ChangeLog --- src/frontends/qt2/ChangeLog 2003/02/05 23:24:38 1.389 +++ src/frontends/qt2/ChangeLog 2003/02/07 11:32:26 @@ -1,3 +1,8 @@ +2003-02-07 Juergen Spitzmueller <[EMAIL PROTECTED]> + + * QTabular.C (closeGUI): do not change if nothing has to + be changed (bug 849). + 2003-02-05 John Levon <[EMAIL PROTECTED]> * QLPrintDialog.C: fix braindead "helpful" code Index: src/frontends/qt2/QTabular.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/frontends/qt2/QTabular.C,v retrieving revision 1.10 diff -u -r1.10 QTabular.C --- src/frontends/qt2/QTabular.C 2002/12/17 20:37:10 1.10 +++ src/frontends/qt2/QTabular.C 2003/02/07 11:32:27 @@ -328,17 +328,20 @@ // apply the fixed width values int cell = inset->getActCell(); - string str1 = LyXLength(dialog_->widthED->text().toDouble(), - dialog_->widthUnit->currentLengthItem()).asString(); + bool const multicol(controller().isMulticolumnCell()); + string str1 = widgetsToLength(dialog_->widthED, dialog_->widthUnit); string str2; + LyXLength llen(tabular->GetColumnPWidth(cell)); - if (llen.zero()) - str2 = ""; - else - str2 = llen.asString(); + LyXLength llenMulti(tabular->GetMColumnPWidth(cell)); + + if (multicol && !llenMulti.zero()) + str2 = llenMulti.asString(); + else if (!multicol && !llen.zero()) + str2 = llen.asString(); if (str1 != str2) { - if (controller().isMulticolumnCell()) + if (multicol) controller().set(LyXTabular::SET_MPWIDTH, str1); else controller().set(LyXTabular::SET_PWIDTH, str1); @@ -346,13 +349,13 @@ // apply the special alignment str1 = fromqstr(dialog_->specialAlignmentED->text()); - if (controller().isMulticolumnCell()) + if (multicol) str2 = tabular->GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_MULTI); else str2 = tabular->GetAlignSpecial(cell, LyXTabular::SET_SPECIAL_COLUMN); if (str1 != str2) { - if (controller().isMulticolumnCell()) + if (multicol) controller().set(LyXTabular::SET_SPECIAL_MULTI, str1); else controller().set(LyXTabular::SET_SPECIAL_COLUMN, str1);