Thanks for trying it out. I saw the error as well both before and after the patch, so I didn't look into it. I think you're right though. I can try that out later. It probably shouldn't impact when/if this patch should be installed.

Are you able to install this and the other or do we need someone else to sign off on it and install them?


Aaron


On Wed, Nov 20, 2024 at 1:27 PM, Alan Third <alan@idiocy.org> wrote:

On Sun, Nov 17, 2024 at 12:00:07AM -0500, Aaron Jensen wrote:

​The bugged behavior is that `ns-use-native-fullscreen' set to nil is not read when launching emacs.

The attached patch should fix this. The problem is that when the frame is made, the current value of ns-use-native-fullscreen is copied to a variable and that's only reset when the frame goes from fullscreen to windowed. I believe the original intent was to ensure that the mode could not change while the window was fullscreen already.

This resets the value of fs_is_native if the frame is not already fullscreen, which allows it to respect the value at the time of the first fullscreen.

Without this, the only way to get the behavior that Sean is expecting is to set ns-use-native-fullscreen in early-init, which should not be necessary.

The patch looks good here. The only thing is I get this printed to the console:

2024-11-20 21:11:36.609 emacs[18867:241457] ERROR: Can't have a toolbar in a window with <NSNextStepFrame: 0x7f8db350c7e0> as it's borderview

I don't think I've ever seen NextStep explicitly mentioned in macOS code before, other than the "NS" prefix.

I'm going to hazard a guess that the first if at the top of createToolbar needs another test for when we're in non-native fullscreen or something.

Native fullscreen displays the toolbar, non-native doesn't because it uses the borderless stylemask. Perhaps a check on the stylemask would be enough to cover both this and undecorated.

--
Alan Third