[LyX/master] Disable valign widget in tabularx tables

Juergen Spitzmueller spitz at lyx.org
Wed Aug 14 14:29:42 UTC 2024


commit c993485782a1f47c6eafc9335c8905b3def7e083
Author: Juergen Spitzmueller <spitz at lyx.org>
Date:   Wed Aug 14 16:28:15 2024 +0200

    Disable valign widget in tabularx tables
    
    See https://marc.info/?l=lyx-users&m=172363857509065&w=2
---
 src/frontends/qt/GuiTabular.cpp | 3 ++-
 src/insets/InsetTabular.cpp     | 7 +++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/frontends/qt/GuiTabular.cpp b/src/frontends/qt/GuiTabular.cpp
index 5c32edc7d4..26f3f6debb 100644
--- a/src/frontends/qt/GuiTabular.cpp
+++ b/src/frontends/qt/GuiTabular.cpp
@@ -267,7 +267,8 @@ void GuiTabular::enableWidgets() const
 	bool const enable_valign =
 		!multirowCB->isChecked()
 		&& !widgetsToLength(columnWidthED, columnWidthUnitLC).empty()
-		&& specialAlignmentED->text().isEmpty();
+		&& specialAlignmentED->text().isEmpty()
+		&& funcEnabled(Tabular::VALIGN_BOTTOM);
 	vAlignCO->setEnabled(enable_valign);
 	vAlignLA->setEnabled(enable_valign);
 
diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp
index aa07a69add..63d6a4eb8a 100644
--- a/src/insets/InsetTabular.cpp
+++ b/src/insets/InsetTabular.cpp
@@ -5683,6 +5683,7 @@ bool InsetTabular::getFeatureStatus(Cursor & cur, string const & s,
 		col_type sel_col_end = 0;
 		Tabular::ltType dummyltt;
 		bool flag = true;
+		bool const tabularx = tabular.hasVarwidthColumn();
 
 		getSelection(cur, sel_row_start, sel_row_end, sel_col_start, sel_col_end);
 
@@ -5958,7 +5959,8 @@ bool InsetTabular::getFeatureStatus(Cursor & cur, string const & s,
 			flag = false;
 			// fall through
 		case Tabular::VALIGN_BOTTOM:
-			status.setEnabled((!tabular.getPWidth(cur.idx()).zero()
+			status.setEnabled(!tabularx
+					  && (!tabular.getPWidth(cur.idx()).zero()
 					   || tabular.getUsebox(cur.idx()) == Tabular::BOX_VARWIDTH));
 			status.setOnOff(
 				tabular.getVAlignment(cur.idx(), flag) == Tabular::LYX_VALIGN_BOTTOM);
@@ -5968,7 +5970,8 @@ bool InsetTabular::getFeatureStatus(Cursor & cur, string const & s,
 			flag = false;
 			// fall through
 		case Tabular::VALIGN_MIDDLE:
-			status.setEnabled((!tabular.getPWidth(cur.idx()).zero()
+			status.setEnabled(!tabularx
+					  && (!tabular.getPWidth(cur.idx()).zero()
 					   || tabular.getUsebox(cur.idx()) == Tabular::BOX_VARWIDTH));
 			status.setOnOff(
 				tabular.getVAlignment(cur.idx(), flag) == Tabular::LYX_VALIGN_MIDDLE);


More information about the lyx-cvs mailing list