Subject: bug#69525: 30.0.50; MacOS: New warnings on stderr

From: Gerd Möllmann <[email-masked]>
Date: Tue, 05 Mar 2024 15:31:47 +0100

Alan Third <[email-masked]> writes:

> On Tue, Mar 05, 2024 at 05:38:26AM +0100, Gerd Möllmann wrote:
>> Alan Third <[email-masked]> writes:
>> 
>> > I wonder if this is something we're doing (like makeKeyAndOrderFront
>> > being called on the new frame and it not checking canBecomeKeyWindow)
>> > or if there's some other step we need to take to prevent this. I'm
>> > fairly sure that I've never seen these warnings so presumably they're
>> > new since 10.14.
>> 
>> You are thinking of this in nsterm.m?
>> 
>>   - (void)makeKeyAndOrderFront:(id)sender
>>   {
>>     NSTRACE ("[EmacsWindow makeKeyAndOrderFront:]");
>> 
>>     if ([self parentWindow])
>>       {
>>         [self orderFront:sender];
>>         [self makeKeyWindow];
>>       }
>>     else
>>       [super makeKeyAndOrderFront:sender];
>>   }
>
> Yes. I think it's the only place we actually call makeKeyWindow
> ourselves, so perhaps it should have a test. Could be worth it just to
> see if it makes the messages go away.
>
> So I guess just something like
>
>     if ([self canBecomeKeyWindow])
>       [self makeKeyWindow];

Alas, that didn't work. I replaced the whole method body with the 2
lines, but then the Emacs frame wouldn't show up on start. There are
some calls to makeKeyWindow in other .m files, BTW.