Subject: Re: bug#21634: 24.5; Suggested improvement

From: Eli Barzilay <[email-masked]>
Date: Thu, 22 Oct 2015 02:06:57 -0400

On Tue, Oct 6, 2015 at 10:58 AM, Eli Zaretskii <[email-masked]> wrote:
>> From: Eli Barzilay <[email-masked]>
>> Date: Tue, 6 Oct 2015 08:04:03 -0400
>>
>> Would it make sense to implement `text-scale-adjust' as follows?  One
>> minor change is using the `keep-pred' argument to avoid re-setting
>> the map repeatedly, but the important change is having it timeout
>> after a few seconds.  This avoids the kind of mode-ish interaction
>> that feels weird in Emacs.
>
> FWIW, such modus operandi always annoys me.  Why should I be under
> pressure to do whatever is needed to prevent the setting from being
> reset?
>
> I don't really understand what's the problem with "mode-ish
> operation", feel free to elaborate.

Well, I suspect that I'm annoyed at the other direction: whenever I go
into the text-scaling mode, I try to remember to explicitly break it at
the end, so that I won't leave emacs in that state by mistake and be
surpries when I come back to it hours later (which actually happened to
me once, possibly putting me on this side of that fence).  OTOH, if the
delay is long enough, there is never any time pressure that I run into,
and it's easy to see when the timer kicked in by the echo area message
disappearing.

> If there's demand for resetting the size, I guess we could have it as
> optional behavior.

That's why I suggested the below extension to the meaning of the
`keep-pred` argument: specifying a timeout if it's a number.  Then there
could be a new global variable that specifies a default for that
argument, so with nil you get a single resize only (so you need to do
the full C-x C-= to resize further), with t you get the current
behavior, and with a number I get my timeout.

(I'm also suggesting it because I have a similarly "moded" function that
uses `set-transient-map' -- it seems like a good idea to me to specify a
default behavior for all such transient maps, so my function behaves in
the same way as text scaling.)

>> In fact, I find this useful in other cases too (a command that allows
>> you to resize the current window with the arrow keys), so I think that
>> it's useful to either add an additional timeout argument -- or perhaps
>> an extension where `keep-pred' can be a number of seconds and will do
>> the timeout thing.
>
> The user can always scale the size back when she wants, right?  Or am
> I missing something?

(Hopefully the above clarified it.  I'm talking about the resulting
interaction and how convenient it is, unrelated to being able to scale
things back.)

-- 
                    ((x=>x(x))(x=>x(x)))                   Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!