Allow arguments in PassThru environments (bug #7646)

This commit is contained in:
Juergen Spitzmueller 2012-11-20 19:00:06 +01:00
parent aafd52f441
commit 34ef91bb70

View File

@ -2320,6 +2320,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
FontInfo const & fontinfo = cur.real_current_font.fontInfo(); FontInfo const & fontinfo = cur.real_current_font.fontInfo();
bool enable = true; bool enable = true;
bool allow_in_passthru = false;
InsetCode code = NO_CODE; InsetCode code = NO_CODE;
switch (cmd.action()) { switch (cmd.action()) {
@ -2516,6 +2517,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
break; break;
case LFUN_ARGUMENT_INSERT: { case LFUN_ARGUMENT_INSERT: {
code = ARG_CODE; code = ARG_CODE;
allow_in_passthru = true;
Layout const & lay = cur.paragraph().layout(); Layout const & lay = cur.paragraph().layout();
int const numargs = lay.reqargs + lay.optargs; int const numargs = lay.reqargs + lay.optargs;
enable = cur.paragraph().insetList().count(ARG_CODE) < numargs; enable = cur.paragraph().insetList().count(ARG_CODE) < numargs;
@ -2889,7 +2891,7 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
if (code != NO_CODE if (code != NO_CODE
&& (cur.empty() && (cur.empty()
|| !cur.inset().insetAllowed(code) || !cur.inset().insetAllowed(code)
|| cur.paragraph().layout().pass_thru)) || (cur.paragraph().layout().pass_thru && !allow_in_passthru)))
enable = false; enable = false;
flag.setEnabled(enable); flag.setEnabled(enable);