Note inset can not be dissolved in table

Pavel Sanda sanda at lyx.org
Tue Nov 19 12:35:18 UTC 2019


On Wed, Nov 06, 2019 at 04:11:44PM +0100, Pavel Sanda wrote:
> On Mon, Nov 04, 2019 at 04:07:57PM +0100, Pavel Sanda wrote:
> > Hi,
> > as title says - in the current stable 2.3 note inset can't be dissolved via inset menu (the menu entry is greyed out).
> 
> Reverting 67f77a07 fixes the problem (but introduces back #9954).
> 
> JMarc, it might be easy cake for you?

This patch seems to fix the issue.
For not having better idea I take descendable() as a reasonable proxy for insets
in which dissolving inset makes sense.

I'll commit to master unless someone has better idea.
Pavel
-------------- next part --------------
diff --git a/src/insets/InsetText.cpp b/src/insets/InsetText.cpp
index c7757f1673..8e240b2979 100644
--- a/src/insets/InsetText.cpp
+++ b/src/insets/InsetText.cpp
@@ -318,7 +318,9 @@ void InsetText::doDispatch(Cursor & cur, FuncRequest & cmd)
 		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;
+		bool one_cell = cur.inset().nargs() == 1;
+		//if in tabular but in front of another inset
+		if (!one_cell && descendable(cur.bv())) one_cell = 1;
 
 		if (!main_inset && target_inset && one_cell) {
 			// Text::dissolveInset assumes that the cursor
@@ -351,7 +353,9 @@ bool InsetText::getStatus(Cursor & cur, FuncRequest const & cmd,
 		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;
+		bool one_cell = cur.inset().nargs() == 1;
+		//if in tabular but in front of another inset
+		if (!one_cell && descendable(cur.bv())) one_cell = 1;
 
 		if (target_inset)
 			status.setEnabled(!main_inset && one_cell);


More information about the lyx-devel mailing list