Subject: bug#62164: 29.0.60; ediff behaves poorly by default on tiling window managers

From: Po Lu <[email-masked]>
Date: Tue, 06 Jun 2023 07:51:44 +0800

Spencer Baugh <[email-masked]> writes:

> Eli Zaretskii <[email-masked]> writes:
>>> Cc: Po Lu <[email-masked]>, [email-masked]
>>> From: Spencer Baugh <[email-masked]>
>>> Date: Tue, 09 May 2023 14:27:11 -0400
>>> 
>>> +(defcustom ediff-x-utility-control-frame nil
>>> +  "If non-nil, the control frame is a utility window under X.
>>> +
>>> +This is useful in tiling window managers, where this will cause
>>> +the control frame to be floating rather than tiled.  It should be
>>> +harmless on other well-behaved window managers."
>>
>> If this option causes the control frame to be floating rather than
>> tiled, the name of the option should reflect that.  Using "utility" in
>> the name of the variable makes the option less self-explanatory,
>> because that technical terms is not relevant on the user level.
>>
>> Thanks.
>
> Agreed. Revised patch attached:
>
> From 8725b7376b3e6ddaaa4389d363bd9da56bf3eedb Mon Sep 17 00:00:00 2001
> From: Spencer Baugh <[email-masked]>
> Date: Tue, 9 May 2023 14:22:29 -0400
> Subject: [PATCH] Allow setting the ediff control frame as a utility window
>  under X
>
> This is a step in the direction of making ediff behave better by
> default under tiling window managers and fixing bug#62164.
>
> * lisp/vc/ediff-wind.el (ediff-x-utility-control-frame): Add
> defcustom.
> (ediff-frame-make-utility, ediff-setup-control-frame): Allow setting
> the control frame up as a utility window under X. (bug#62164)
> ---
>  lisp/vc/ediff-wind.el | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
>
> diff --git a/lisp/vc/ediff-wind.el b/lisp/vc/ediff-wind.el
> index eb903f093f9..e50df599a98 100644
> --- a/lisp/vc/ediff-wind.el
> +++ b/lisp/vc/ediff-wind.el
> @@ -69,6 +69,16 @@ ediff-window-setup-function
>  		 (function :tag "Other function"))
>    :version "24.3")
>  
> +(defcustom ediff-x-floating-control-frame nil

I don't think this is correct.  Ordering the control frame above other
windows is one policy taken towards utility windows, but other window
managers may behave differently (by placing the utility window at a
fixed position, for instance.)

The name of this variable should not depend on the behavior of the
window manager.