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

Reply via email to