Disable LFUN_INSET_DISSOLVE in tabulars

When in a tabular cell, "this" is just a lone InsetText, while cur.inset() is the whole tabular. This makes a big difference, especially when one wants to count cells.

Fixes bug #9954.

(cherry picked from commit 4caf167dbd24722421ae8d94a2c103bf41a7667d)
This commit is contained in:
Jean-Marc Lasgouttes 2016-05-10 11:17:43 +02:00 committed by Richard Heck
parent 9a4309b104
commit c25ba48f0a
2 changed files with 8 additions and 3 deletions

View File

@ -293,7 +293,8 @@ void InsetText::doDispatch(Cursor & cur, FuncRequest & cmd)
bool const main_inset = &buffer().inset() == this;
bool const target_inset = cmd.argument().empty()
|| cmd.getArg(0) == insetName(lyxCode());
bool const one_cell = nargs() == 1;
// 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) {
// Text::dissolveInset assumes that the cursor
@ -325,7 +326,8 @@ bool InsetText::getStatus(Cursor & cur, FuncRequest const & cmd,
bool const main_inset = &buffer().inset() == this;
bool const target_inset = cmd.argument().empty()
|| cmd.getArg(0) == insetName(lyxCode());
bool const one_cell = nargs() == 1;
// 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);

View File

@ -98,7 +98,10 @@ What's new
- Raise GuiView on buffer switch to bring it topmost in multi-window mode.
- Fix cursor position after Redo of a document settings change (bug 10097).
- Fix cursor position after Redo of a document settings change (bug
10097).
- Disable Edit>Dissolve Inset in tabulars (bug 9954).
- Shortcut preferences: ask the user for removing bindings when using the
"restore" button (#9174).