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 #23 received at 61525 <at> debbugs.gnu.org (full text, mbox):
> Cc: justksqsf <at> gmail.com
> Date: Wed, 15 Feb 2023 16:41:41 +0100
> From: Daniel Martín via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>
> Daniel Martín via "Bug reports for GNU Emacs, the Swiss army knife of
> text editors" <bug-gnu-emacs <at> gnu.org> writes:
>
> >
> > One downside of removing raise_frame is that, after you press C-x 5 0,
> > you cannot start typing right away without first focusing on another
> > Emacs frame manually. People would consider this a regression from
> > previous versions and something that doesn't happen on GNU/Linux.
> >
> > A possibly better approach could be:
> >
> > Once the "other" frame to select is chosen by the code that is just
> > above in frame.c, call some Obj-C code that extracts the EmacsView and
> > makes it the first responder:
> >
> > EmacsView *view = FRAME_NS_VIEW (frame1);
> > [self makeFirstResponder:view];
> >
> > I haven't tested this, but perhaps this makes the other frame receive
> > focus without switching desktops in a multi-desktop configuration.
>
> The attached patch avoids the unwanted side effects of raise-frame by
> making the other frame the key window, instead. Could you give it a
> try?
Thanks.
> +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.
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 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.