emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: src/nsterm.m: fix window tabbing on macOS


From: Alan Third
Subject: Re: src/nsterm.m: fix window tabbing on macOS
Date: Mon, 10 May 2021 20:53:52 +0100

On Sat, May 08, 2021 at 10:27:13PM +1000, Paul W. Rankin wrote:
> > On 8 May 2021, at 9:21 pm, Alan Third <alan@idiocy.org> wrote:
> > > src/nsterm.m: use NSWindowTabbingModeAutomatic to respect user choice.
> > > Tabbed window managers are now widely available for free systems.
> > 
> > For the record the tabbing being enabled here is not Emacs's own
> > tabbing, it's a macOS method of combining multiple OS windows into
> > one. Emacs's tabbing has still to be implemented on the NS port (I've
> > no interest as I think tabbed windows are an abomination that should
> > be burnt on sight, but would happily let someone else implement it).
> 
> I think all the more reason not to hobble the macOS window manager! But yes
> it should be noted that tabs here are in the context of window management
> (i.e. Emacs frames) not tab-bar-mode. A Linux counterpart would be
> https://tools.suckless.org/tabbed/

I reckon this is probably OK, but I'll leave it a bit longer to see if
anyone else has an opinion.

> > Paul, is this still the absolute disaster it was when it first
> > appeared where some random Emacs frames would get combined but not
> > others, not to mention the crashes? Also there was no "user choice" as
> > I recall, it just happened without any warning or input from the user,
> > at random.
> > 
> > Is it actually stable and usable now?
> 
> I've been building Emacs with this change applied for several years now
> across a few different macOS versions and I've never experienced a crash or
> unexpected behaviour. But it depends on what you might be doing that I'm
> not; can you provide a step-by-step?

IIRC, it would just crash pretty much at random, and without much
prompting, so you'd likely know if it was still a problem.

Most likely the fullscreen crash fixes from a couple of years ago
solved it.

> The user choice I refer to resides in the odd place of System Preferences >
> Dock > Prefer tabs when opening documents: [Always | In Full Screen Only |
> Manually]. The behaviour I've experienced with each of these is:
> 
> - Always: invoking `make-new-frame' will always create a frame in a new tab
> - In Full Screen Only: invoking `make-new-frame' will create a frame in a
> new tab only when `(frame-parameter nil 'fullscreen)' is non-nil
> - Manually: `make-new-frame' will never create new tabs

That location really doesn't much sense! Certainly explains why I've
never seen it before. :)

This is really my lastremaining concern, that it's such an obscure
setting that we'll get a lot of bug reports about Emacs-doing-tabs
when-I-don't-want-it-to. I'm not sure there's a good solution to that
other than perhaps putting a note in the NS port documentation (which
afaict nobody ever reads anyway).

BTW, is there an advantage to explicitly enabling the default setting
over just removing the code that disables it?

-- 
Alan Third



reply via email to

[Prev in Thread] Current Thread [Next in Thread]