Subject: bug#77160: raising hell (frames)

From: Ship Mints <[email-masked]>
Date: Fri, 21 Mar 2025 17:57:28 -0400

On Fri, Mar 21, 2025 at 5:36 PM Christopher Stacy <[email-masked]> wrote:

> In Emacs 30.1 on MacOS Monterey:
>
> I am used to the switching of frames being seamless and instant, with no
> special effects.
>
> At some point, MacOS started doing this horrible sliding doors animation
> when switching frames (window manager windows). The effect happens on
> some other applications, not just Emacs. But I think Emacs may be
> requesting it.
>
> The railwaycat Cocoa port
> (https://github.com/railwaycat/homebrew-emacsmacport) does not do the
> effect. More importantly, the (latest) Firefox does not do the effect.
> When I press "cmd-`" on both those applications, I get what I expect. No
> effect, no flicker, no delay --- I am instantly in the other window.
>
> To be able to use Emacs 30.1 which has the effect, I went into the MacOS
> control panel and under Accessibility, enabled "Reduce Motion". This
> replaces the 2 second (!!!) sliding doors with a 1/2 second fader
> effect. That is still too slow and intrusive for doing eyeball
> source-compare by switching frames.
>
> I will note that regular Emacs on Linux also has an effect: the window
> manager does (in my case) the card-flipping effect. I don't use Linux
> very much, but it would be nice to get rid of this on that platform as
> well. No idea what Windows does these days, but 15 years ago when I last
> booted that OS, there was no effect when switching Emacs frames.
>
> I have no idea how any of this works, but I speculate that either (a)
> the application requests an effect (perhaps that's the default) to the
> window manager; or (b) Firefox is coded to the older window system,
> which doesn't do these effects. Either way, it is definitely possible to
> control this and make all effects go away. Somehow.
>
> So I am requesting the ability for Emacs to turn the effects off.
> For MacOS, ideally for all platforms, ideally a Lisp variable at runtime.
> If you wanted to get fancy it could be a frame property.
> i can easily imagine setting it on only some frames, as I use frames for
> a variety of purposes.
> I can compile Emacs if that's what I have to do, to test a patch or to
> set a compile-time option. I will gladly test this if anyone will hack it.
>
> Thank You for any clues and hacks!
>

I use Monterey with 29.4, 30.1, 31/master and I never see any such
animations (which I consider childish, like emojis).  I also never see such
things on Linux.  The code for Emacs makes no explicit requests that I can
discern.  I'm guessing you have installed something else on your system or
have some other setting that is interfering.

Or...

Are you running "full screen" windows?  I never use those (only "maximized"
in Emacs parlance) so it is possible what you are observing is something
related to switching among full-screen frames.  Disable Mission Control and
Spaces and see what happens.