GNU bug report logs -
#61525
29.0.60; delete-frame will raise frames in another virtual desktop
Previous Next
Reported by: Kai Ma <justksqsf <at> gmail.com>
Date: Wed, 15 Feb 2023 04:27:02 UTC
Severity: normal
Tags: patch
Found in version 29.0.60
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #26 received at 61525 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:
>> +void ns_make_frame_key_window (struct frame *f)
>> +{
>> + [[FRAME_NS_VIEW (f) window] makeKeyWindow];
>> +}
>
> Is this new call guaranteed to exist and work well on all the
> supported OS versions where we have the NS build? I wouldn't want to
> fix this on some systems and break it on others at the same time.
makeKeyWindow is a very old API that should be available on every macOS
and GNUstep we support, AFAIK. I see usages of that API in other parts
of the NS build, in things as central as frame creation, and they are
not protected by any version or system check.
>
> Alternatively, can we come up with a change that does both what the
> old code did and this addition? That old code did work at some point,
> I presume?
This is not the case of the old code breaking at some point. It's a
difference in behavior between the GNU/Linux version of Emacs and the NS
version of Emacs. In GNU/Linux, if you place an Emacs frame in a
separate desktop and press C-x 5 0, the window manager does not
automatically switch to the desktop where the other Emacs frames reside.
I don't know the reason why the NS build has been calling raise-frame
for so long. I presume it was considered a good enough way to refocus
to another frame after closing one, in a world where virtual desktops
were not very common and the behavior reported by the OP was ignored.
I've attached a revised version of the patch, to fix a couple of code
style issues.
[0001-NS-Do-not-raise-a-different-frame-when-closing-a-fra.patch (text/x-patch, attachment)]
This bug report was last modified 1 year and 270 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.