[LyX/master] Disable inset-dissolve in table cells

Jean-Marc Lasgouttes lasgouttes at lyx.org
Fri Dec 6 08:39:23 UTC 2019


commit 5ac3b880075794130492c2fe63c35104b207ad73
Author: Jean-Marc Lasgouttes <lasgouttes at lyx.org>
Date:   Wed Dec 4 15:56:30 2019 +0100

    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).
---
 src/insets/InsetTabular.cpp |    3 +++
 src/insets/InsetText.cpp    |    8 ++------
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp
index edd96a5..c59f642 100644
--- a/src/insets/InsetTabular.cpp
+++ b/src/insets/InsetTabular.cpp
@@ -3989,6 +3989,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 c7757f1..2126fb1 100644
--- a/src/insets/InsetText.cpp
+++ b/src/insets/InsetText.cpp
@@ -317,10 +317,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)
@@ -350,11 +348,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;
 	}
 


More information about the lyx-cvs mailing list