On 10 Apr 2019, at 18:51, Ronald Wampler wrote:
I can confirm that transparency no longer works in Mojave using any releases that are linked against the 10.14 SDK. It appears the current method (setting the window to not be opaque and the text view to NSColor clearColor) doesn't work now.
The problem seems to be that when linking with the 10.14 SDK, views will draw into their own separate layers, so we can no longer “erase” the background with `NSColor.clearColor` to make a subset of the window transparent (as we no longer erase into the shared buffer for enture full window).
Instead we must ensure that all ancestor views are transparent, which would include setting `backgroundColor` to `NSColor.clearColor` for our window, and then making sure that all other views in the window have an opaque background.
It might be doable, but a quick test showed a problem with the file browser, as it is using an `NSVisualEffectView`. It might work if we put a view behind the `NSVisualEffectView` to draw the window background, but I’m hesitant to pursue this, as the less assumptions we make about how these views work, the better.
There is the ability to use an `NSVisualEffectView` behind the text view, but that would be a different kind of transparency, unlikely to be compatible with the themes currently using alpha.