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