emacs-devel
[Top][All Lists]
Advanced

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

Re: NS port and fancy OS X scrollbars


From: Anders Lindgren
Subject: Re: NS port and fancy OS X scrollbars
Date: Wed, 24 Feb 2016 10:56:36 +0100

Hi!
 
As far as I can tell the 'right' way to do it is to create an
NSScrollView and put your buffer content into another NSView within
it. This seems to give you native scrollbars for a lot less work than
is being done at the moment. However I think we'd lose the ability to
put the vertical scrollbars on the left. I don't know how important
that feature is.

It's hard to know. One way to handle this is to keep both implementations around. Clearly, the combination of having scroll bars to the left and make them floating won't be supported. This might be needed anyway since I'm not sure if GNUStep supports floating scroll bars.


I think there's a bigger problem, though. It looks to me like the mode
line is currently drawn into the same NSView as the rest of the
buffer, so just wrapping the current NSView with an NSScrollView would
result in the vertical scrollbar overlapping the mode line, and the
horizontal scrollbar below it.

Unfortunately, I never looked into the technical details, so I can't say whether this is the right way to handle it.

However, then I wrote this I envisioned a layout that would be identical to when scroll bars were disabled, but that they should appear when the user scrolled the text using the mouse. Clearly, the scroll bar should not cover the mode line, the minibuffer/echo area, nor the header line (if present).


Am I right about this? If so then it seems the only way to get the
floating scrollbars would be to recreate the effect ourselves, which I
suspect is rather a lot of work.

If you are correct, then I would suggest that we shouldn't pursue this. If it's not possible to implement this in a clean OS friendly manner, we risk ending up with complex, fragile, code that might not work on future OS X versions.

    -- Anders


reply via email to

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