Rewrite con_swap to work only with queue operations

Benefits are that we don't open a fake container and don't call many
complicated functions that can lead to redraws (x_push_changes calls) as
discussed in #2954.

Fixes #2810:
Windows exchange floating mode & window rects.
Swap will still not work with CT_FLOATING_CONs but this doesn't make
much sense.

Fixes #3280:
The behaviour is not very user friendly but swap behaves exactly as it
should. The rest is a tree_flatten issue. Attached pictures in #2954.
This commit is contained in:
Orestis Floros
2017-09-06 05:44:09 +03:00
parent dfe89cc4f1
commit 8e1687a317
4 changed files with 324 additions and 131 deletions

View File

@ -2092,8 +2092,7 @@ using one of the following methods:
+mark+:: A container with the specified mark, see <<vim_like_marks>>.
Note that swapping does not work with all containers. Most notably, swapping
floating containers or containers that have a parent-child relationship to one
another does not work.
containers that have a parent-child relationship to one another does not work.
*Syntax*:
----------------------------------------