[LyX/master] Tab binding: outline-in before depth-increment

Scott Kostyshak skostysh at lyx.org
Thu Sep 10 15:52:06 UTC 2020


On Thu, May 16, 2019 at 07:54:41PM +0200, Scott Kostyshak wrote:
> commit 9ab9f2b1acb8bc1a40d5a69737b43d09b7f7a597
> Author: Scott Kostyshak <skostysh at lyx.org>
> Date:   Thu May 16 13:58:18 2019 -0400
> 
>     Tab binding: outline-in before depth-increment
>     
>     Same for BackTab. The outline-in was originally (31398779)
>     introduced to the command-sequence at the end. Probably it was
>     placed at the end to be conservative (i.e., so that it would only
>     change behavior where there was a no-op before).
>     
>     This fixes #11576.
> ---
>  lib/bind/site.bind |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/bind/site.bind b/lib/bind/site.bind
> index 4c3c609..615c685 100644
> --- a/lib/bind/site.bind
> +++ b/lib/bind/site.bind
> @@ -27,10 +27,10 @@ Format 5
>  \bind "Up"         "up"
>  \bind "Down"       "down"
>  
> -\bind "Tab"        "command-alternatives completion-accept;cell-forward;tab-insert;depth-increment;outline-in"
> +\bind "Tab"        "command-alternatives completion-accept;cell-forward;tab-insert;outline-in;depth-increment"
>  \bind "C-Tab"      "cell-split"
>  \bind "~S-ISO_Left_Tab"    "cell-backward"
> -\bind "~S-BackTab" "command-alternatives cell-backward;tab-delete;depth-decrement;outline-out"
> +\bind "~S-BackTab" "command-alternatives cell-backward;tab-delete;outline-out;depth-decrement"

This commit introduced a regression (also in stable). To reproduce:

1. open the attached file.
2. convert the "standard" layout to "frame" (it will be nested).
3. try to unnest the frame with shift+tab.

Result: on 2.3.x and master, it becomes a subsubsection. On 2.3.0, it
has the expected (to me) result of unnesting the frame.

The reason for the 2.3.x behavior is because of the change of order of
the command alternatives in this commit. outline-out succeeds. From what
I understand, outline-out succeeds because in the Frame layout, the
TocLevel is set.

If we revert this commit, we reintroduce #11576.

I don't know much about layouts so I'm not sure what the best approach
is. Is there any use case of nesting a Frame in any other environment?
If not, would it make sense to disable nesting for it? In that case,
depth-decrement would never be needed.

Should layouts with toclevel ever be nested? I just tried, and it seems
that it is possible to nest a Section inside another Section and it
compiles without error, so I guess we should not restrict the user if
LaTeX allows it?

Scott
-------------- next part --------------
A non-text attachment was scrubbed...
Name: unnest-frames.lyx
Type: application/x-lyx
Size: 2032 bytes
Desc: not available
URL: <http://lists.lyx.org/pipermail/lyx-devel/attachments/20200910/001c82e2/attachment.lyx>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.lyx.org/pipermail/lyx-devel/attachments/20200910/001c82e2/attachment.asc>


More information about the lyx-devel mailing list