-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sidepanel continuous scrolling for macOS #8616
Conversation
I just happened to be looking at something related today in dt_gui_get_scroll_unit_deltas. It turns out my touchpad generates both smooth scrolling events and emulated discrete events, leading to "double counting".
seems to resolve my issue and on my system I haven't noticed averse effects, but as we know that doesn't guarantee it won't cause problem with other systems or configurations. If it doesn't cause regressions, presumably it should be added to |
I added the check for emulated events. It doesn't change anything on my system. |
We should try to get some serious testing on your PR (after it gets merged; from experience it is hard to get testing in the PR phase) by people on all kinds of different machines. Maybe you could add a short list of test steps so all the different cases are covered; scrolling on a widget or side panel might behave differently from ctrl-scrolling on the central view to change the mask opacity, for example. And the list should probably say what the expected / wanted behavior is, because if it has been broken on a particular system forever, the user there might not even know what to look for and report back that all is fine/no worse than before, when it actually is still broken. Then when it lands in master we can ask in different places (irc/mailing list/pixls) to run the test script and report back here with 👍 or comments. Otherwise we could get the usual situation after release of 3.6 where we have to run around and try to fix things for very specific configurations and that always gets messy. There might even be people that prefer the current behavior in some respect that you consider broken; better to have those discussions now. |
If we are going to do extensive testing would it be a good idea to consider enabling |
Shouldn't it behave similar to MacOS (i.e. less jumpy scrolling, i.e. more readable)? A quick test on my system doesn't show a difference, but it may be that this needs to be switched on system/gtk-wide as well (and I'm not using gnome). One advantage of using a consistent setting across all platforms is that more people could notice breakage early that currently only affects MacOS. |
I tried this PR on my "Ubuntu USB stick" (X11). With |
i build it on osx and did some tests with my magic mouse - but i can't feel any difference to the behaviour of current master. What exactly should be the difference and how to test this? |
Sidepanels should scroll without steps in darkroom and lighttable. Previously it was dependant on what was under the cursor. (E.g. scrolling over module headers was intermittent) Works for me with macOS 10.14.6 and macbook touchpad. I think magic mouse should work in a similar way. Traditional style scrollwheel isn't changed. Problem with scrollbars hasn't changed for me either. |
It doesn't look very promising that I am the only one able to see the change of this PR. I'm not really sure what the problem might be on macOS. For X11 this PR currently doesn't enable the functionality and requires the addition from previous comment.
I might add a commit for that if it makes testing easier. |
Makes sense to me; unless there is a known problem with gtk smooth scrolling on linux, we should follow gtk behavior; leave it up to the user to disable it in gtk settings if they want to. @TurboGit as we know, this will not get serious wider testing until it gets merged. If @lhietal adds a more specific description in the OP of this PR of what the intended changes (the ones they see on MacOS; maybe using a screencast video if it is visible) are, then it can always be (partially) reverted if it does cause problems somewhere. But to me this all seems logical cleanup/consistency changes in some cases removing possibly unnecessary workarounds (that were put in "just to be safe"). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm merging that. All my testing have been ok.
I have found one issue but verified that it was already in master. The touchpad on my notebook cannot be used reliably to scroll on the scrollbars in lighttable & darkroom. Any idea about what could be wrong ?
Anyway, not a regression so merging. Thanks.
What is the exact behaviour that you are getting? This might be something related to #7904 (comment) where scrolling scrollbars is too fast on macOS. I could look into that issue again but there doesn't seem to be any easy solution. |
@lhietal : the behavior is erratic, the scrollbars do not move then there are moving fast in loop up/down (just a bit) making the display shake/flicker... Really strange! I don't have this issue with mouse scroll of course. |
Seems that it is not related to the issue I mentioned. I haven't seen that kind of behaviour in any of my tests. |
The concept of
|
That could be a reasonable next step. Could there be a need for using other masks with different systems in the future? E.g. |
I don't know. It'd be worth checking/following #8078, as that's where intense development is going on. The |
Allow sidepanels to receive smooth scroll events on macOS. Scrolling is now continuous. Continues #8449.
I changed some iops to use dt_gui_get_scroll_unit_deltas() which also affects other OSs. This produces nicer behaviour that better maches current master. Normal scrolling should not be affected but touchpad experience might be slightly different.
Implements similar functionality as #2575.
Effectively reverses #1659. It seems that issues reported are related to issue fixed in #7904.
Testing this PR
Use both mouse scrollwheel and touchpad for testing if possible and go through functionality in the table.