From 440271540f1d79b0c4d27a94debca10f782d9fb9 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Wed, 4 Dec 2019 15:56:30 +0100 Subject: [PATCH] Disable inset-dissolve in table cells This is better than making sure that the inset has exactly one cell. In the future, inset-dissolve could be extended to dissolve all the cells contents in the enclosing text. Note that this check does not appear in mathed, and using dissolve in e.g. fraction inset may lead to data loss (only current cell contents is preserved). (cherry picked from commit 5ac3b880075794130492c2fe63c35104b207ad73) --- src/insets/InsetTabular.cpp | 3 +++ src/insets/InsetText.cpp | 8 ++------ status.23x | 2 ++ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp index 8ebb663025..ba00da7a64 100644 --- a/src/insets/InsetTabular.cpp +++ b/src/insets/InsetTabular.cpp @@ -3588,6 +3588,9 @@ bool InsetTableCell::getStatus(Cursor & cur, FuncRequest const & cmd, { bool enabled = true; switch (cmd.action()) { + case LFUN_INSET_DISSOLVE: + enabled = false; + break; case LFUN_MATH_DISPLAY: if (!hasFixedWidth()) { enabled = false; diff --git a/src/insets/InsetText.cpp b/src/insets/InsetText.cpp index 930ea1475c..da195b04ec 100644 --- a/src/insets/InsetText.cpp +++ b/src/insets/InsetText.cpp @@ -318,10 +318,8 @@ void InsetText::doDispatch(Cursor & cur, FuncRequest & cmd) bool const main_inset = text_.isMainText(); bool const target_inset = cmd.argument().empty() || cmd.getArg(0) == insetName(lyxCode()); - // cur.inset() is the tabular when this is a single cell (bug #9954) - bool const one_cell = cur.inset().nargs() == 1; - if (!main_inset && target_inset && one_cell) { + if (!main_inset && target_inset) { // Text::dissolveInset assumes that the cursor // is inside the Inset. if (&cur.inset() != this) @@ -351,11 +349,9 @@ bool InsetText::getStatus(Cursor & cur, FuncRequest const & cmd, bool const main_inset = text_.isMainText(); bool const target_inset = cmd.argument().empty() || cmd.getArg(0) == insetName(lyxCode()); - // cur.inset() is the tabular when this is a single cell (bug #9954) - bool const one_cell = cur.inset().nargs() == 1; if (target_inset) - status.setEnabled(!main_inset && one_cell); + status.setEnabled(!main_inset); return target_inset; } diff --git a/status.23x b/status.23x index b08b2656cc..22b9b5dd23 100644 --- a/status.23x +++ b/status.23x @@ -159,6 +159,8 @@ What's new - Enable dissolve in undefined Flex inset context menu (bug 8650). +- Enable dissolve in context menu of element in table cells. + - Fix bad caret position when row scrolls horizontally (bug 11603). - Fix crash when inserting some insets in math split insets (bug 11686). -- 2.39.5