I've tested my patched version of Emacs master and I can stretch one
frame across both screens (seemingly) without any problem. It is
possible that my patched version would not do the right thing on OS X
10.9+, though, if the interaction with "Spaces" and constrainFrameRect
is different there.
[BTW, if I understand right, "Spaces" in Mac OS X 10.9+ prevent you from
having any frame spanning multiple monitors. Does the current Emacs
code (without my patch) remove that limitation?]
> A better solution would be to add to code to check if the Emacs frame is
> outside any monitor, and then (and only then) call the constrainFrameRect
> method of the parent class.
Your use case above for a frame (placing it above the top of the screen,
as with `(set-frame-position (selected-frame) 0 -10)' in your test
code), would (I think) count as bringing the frame outside of a screen,
and therefore constrainFrameRect would kick in, bringing the frame back
to ((top . 0) (left . 0)) -- as my patched version does. But this is
apparently not what you want. So we would need to allow some leeway in
the calculation to allow a frame to be only slightly outside of a
monitor? This sounds complicated to me.
Also, thank you for pointing out `ns-auto-hide-menu-bar'. I did not
know about that variable. But I do not understand why you would want to
place a frame above the top of the screen when the menu bar is hidden.
It might give you an extra row of text, at the cost of obscuring the
close/iconify/maximize buttons, and the frame title. You could get more
bang for your buck by turning off `tool-bar-mode', IMO. And I don't
think OS X natively allows a user to place a frame above the top of the
screen anyway.
> Anyway, I'm glad that you have looked into this. The number of people
> actively working on the NS port are close to zero (I threw in the towel
> about a year ago, simply because I couldn't find the time I needed to spend
> on it). If you are interested in contributing, you can look at the
> "NeXTstep port" section of the "TODO" file.
Will do. Do you know of any good resources for tinkering in this area?
I have some old Apple docsets available which I haven't really gotten
around to reading yet, but that's about it.