]> git.lyx.org Git - lyx.git/commitdiff
Disable valign widget in tabularx tables
authorJuergen Spitzmueller <spitz@lyx.org>
Wed, 14 Aug 2024 14:28:15 +0000 (16:28 +0200)
committerJuergen Spitzmueller <spitz@lyx.org>
Wed, 14 Aug 2024 14:28:15 +0000 (16:28 +0200)
See https://marc.info/?l=lyx-users&m=172363857509065&w=2

src/frontends/qt/GuiTabular.cpp
src/insets/InsetTabular.cpp

index 5c32edc7d4c4fe55fe957b7515546c9ce467d0d0..26f3f6debb2ecf5778c72e612c7c65641d5343a1 100644 (file)
@@ -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);
 
index aa07a69addc102daf3006e5676957e2cca6581b3..63d6a4eb8a480620a0b444544ea9cfb528a0e2d7 100644 (file)
@@ -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);