Skip to content
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

Breadcrumbs scroll horribly with a touchpad :( #9400

Closed
lampholder opened this issue Apr 8, 2019 · 17 comments
Closed

Breadcrumbs scroll horribly with a touchpad :( #9400

lampholder opened this issue Apr 8, 2019 · 17 comments

Comments

@lampholder
Copy link
Member

Related to #9314

You try and scroll horizontally but it only reacts to the accidental vertical component of your scroll action.

@bwindels
Copy link
Contributor

bwindels commented Apr 8, 2019

wonder if this is the tooltip preventing scroll events.

@jryans
Copy link
Collaborator

jryans commented Apr 8, 2019

Possibly related to #9394.

@turt2live turt2live added this to the Breadcrumbs: Out of labs milestone Apr 8, 2019
@turt2live turt2live self-assigned this Apr 8, 2019
turt2live added a commit to matrix-org/matrix-react-sdk that referenced this issue Apr 8, 2019
See element-hq/element-web#9400
See element-hq/element-web#9394

Tolerances are defined as a device-only setting to give advanced users an option to override the values. No UI is exposed for this. 

The default values are picked for assumptions on comfort, however as people change the tolerances themselves the defaults may need to change.
turt2live added a commit to matrix-org/matrix-react-sdk that referenced this issue Apr 8, 2019
See element-hq/element-web#9400
See element-hq/element-web#9394

Tolerances are defined as a device-only setting to give advanced users an option to override the values. No UI is exposed for this. 

The default values are picked for assumptions on comfort, however as people change the tolerances themselves the defaults may need to change.
@turt2live
Copy link
Member

I can't actually test this because my laptop is sub par, however I believe this would be caused by the scroll event being additive.

@turt2live
Copy link
Member

@lampholder can you try this again on the latest develop?

@jryans
Copy link
Collaborator

jryans commented Apr 10, 2019

For me, it still seems quite difficult to scroll horizontally. I guess there aren't any wheel properties that say "from touchpad"...? Ideally we wouldn't attempt to consider the vertical component at all from a touchpad.

@lampholder
Copy link
Member Author

Yeah, I'm afraid it still feels very glitchy to me :(

@turt2live
Copy link
Member

Can I get a video of what "glitchy" is? Without a trackpad myself it's impossible to reproduce this, so I'm hoping that a video showing the behaviour can be reverse engineered enough to solve the problem.

@bwindels
Copy link
Contributor

For me, on Fedora 29, FF 66:
breadcrumbs-scroll

First scrolling horizontally on the touchpad, which feels fast and fluid (but didn't expect to use it like this, I intuitively used vertical touchpad scrolling). then vertical touchpad scrolling, which is slower, and then scroll wheel on my mouse, which is a lot slower still.

Ideally they would all scroll at the same rate.

@bwindels
Copy link
Contributor

As you don't have the hardware, I'm also happy to have a look @turt2live

@jryans
Copy link
Collaborator

jryans commented Apr 11, 2019

I believe the main issue I have noticed is that with a touchpad, you could hover over the breadcrumbs and move from the center of the touchpad to the top-right corner, in an attempt to scroll right. However, since there is both motion right and up, the vertical handling counteracts the horizontal, and it just kind of shakes around:

breadcrumb-touchpad

@jryans
Copy link
Collaborator

jryans commented Apr 11, 2019

It seems like it's hard to distinguish mouse wheel vs. touchpad scrolling generally...

Maybe it would be sufficient to say if the wheel event contains any horizontal delta, it's probably from a touchpad-like device, so ignore the vertical component and only use the horizontal. Would that be reasonable?

@bwindels
Copy link
Contributor

While testing with my touchpad, I see both deltaX and deltaY with a non-zero value, depending of how I scroll.

deltaX/Y values from the touchpad do always seem to be fractional, whereas from the mouse wheel always seem to be integers.

@jryans
Copy link
Collaborator

jryans commented Apr 11, 2019

For Firefox on macOS with my MBP touchpad, the delta values are integers only.

@turt2live
Copy link
Member

Recent changes were supposed to consider anything over a delta of 10 as horizontal only movement, but it sounds like that's too high. Maybe zero is the right answer for a threshold.

I'll put together a quick script for people to run to see if it fixes the issue later today.

@turt2live
Copy link
Member

turns out the script is simple:

@jryans @bwindels can you give this a try in the js console? Will need to reload after setting to pick up the changes.

mxSettingsStore.setValue("breadcrumb_scroll_tolerances", null, "device", {xyThreshold: 0, yReduction: 1.0});

@jryans
Copy link
Collaborator

jryans commented Apr 11, 2019

turns out the script is simple:

@jryans @bwindels can you give this a try in the js console? Will need to reload after setting to pick up the changes.

mxSettingsStore.setValue("breadcrumb_scroll_tolerances", null, "device", {xyThreshold: 0, yReduction: 1.0});

For me, this is almost enough. One extra bug fix is also needed: the xyThreshold allows any negative value to go through, so moving from center to bottom-left isn't correct yet. If I also change the code to

if (Math.abs(e.deltaX) >= xyThreshold) return;

then yes, the scrolling is great for me.

turt2live added a commit to matrix-org/matrix-react-sdk that referenced this issue Apr 11, 2019
Fixes element-hq/element-web#9394
Fixes element-hq/element-web#9400

Numbers chosen based on user feedback. The setting has also been removed because it isn't really needed anymore.
@bwindels
Copy link
Contributor

Can't test atm without /develop

@jryans jryans removed the Z-UI/UX label Mar 9, 2021
su-ex added a commit to SchildiChat/element-web that referenced this issue Nov 12, 2022
* Loading threads with server-side assistance ([\element-hq#9356](matrix-org/matrix-react-sdk#9356)). Fixes element-hq#21807, element-hq#21799, element-hq#21911, element-hq#22141, element-hq#22157, element-hq#22641, element-hq#22501 element-hq#22438 and element-hq#21678. Contributed by @justjanne.
* Make thread replies trigger a room list re-ordering ([\element-hq#9510](matrix-org/matrix-react-sdk#9510)). Fixes element-hq#21700.
* Device manager - add extra details to device security and renaming ([\element-hq#9501](matrix-org/matrix-react-sdk#9501)). Contributed by @kerryarchibald.
* Add plain text mode to the wysiwyg composer ([\element-hq#9503](matrix-org/matrix-react-sdk#9503)). Contributed by @florianduros.
* Sliding Sync: improve sort order, show subspace rooms, better tombstoned room handling ([\element-hq#9484](matrix-org/matrix-react-sdk#9484)).
* Device manager - add learn more popups to filtered sessions section ([\element-hq#9497](matrix-org/matrix-react-sdk#9497)). Contributed by @kerryarchibald.
* Show thread notification if thread timeline is closed ([\element-hq#9495](matrix-org/matrix-react-sdk#9495)). Fixes element-hq#23589.
* Add message editing to wysiwyg composer ([\element-hq#9488](matrix-org/matrix-react-sdk#9488)). Contributed by @florianduros.
* Device manager - confirm sign out of other sessions ([\element-hq#9487](matrix-org/matrix-react-sdk#9487)). Contributed by @kerryarchibald.
* Automatically request logs from other users in a call when submitting logs ([\element-hq#9492](matrix-org/matrix-react-sdk#9492)).
* Add thread notification with server assistance (MSC3773) ([\element-hq#9400](matrix-org/matrix-react-sdk#9400)). Fixes element-hq#21114, element-hq#21413, element-hq#21416, element-hq#21433, element-hq#21481, element-hq#21798, element-hq#21823 element-hq#23192 and element-hq#21765.
* Support for login + E2EE set up with QR ([\element-hq#9403](matrix-org/matrix-react-sdk#9403)). Contributed by @hughns.
* Allow pressing Enter to send messages in new composer ([\element-hq#9451](matrix-org/matrix-react-sdk#9451)). Contributed by @andybalaam.
* Fix regressions around media uploads failing and causing soft crashes ([\element-hq#9549](matrix-org/matrix-react-sdk#9549)). Fixes matrix-org/element-web-rageshakes#16831, matrix-org/element-web-rageshakes#16824 matrix-org/element-web-rageshakes#16810 and element-hq#23641.
* Fix /myroomavatar slash command ([\element-hq#9536](matrix-org/matrix-react-sdk#9536)). Fixes matrix-org/synapse#14321.
* Fix config.json failing to load for Jitsi wrapper in non-root deployment ([\element-hq#23577](element-hq#23577)).
* Fix NotificationBadge unsent color ([\element-hq#9522](matrix-org/matrix-react-sdk#9522)). Fixes element-hq#23646.
* Fix room list sorted by recent on app startup ([\element-hq#9515](matrix-org/matrix-react-sdk#9515)). Fixes element-hq#23635.
* Reset custom power selector when blurred on empty ([\element-hq#9508](matrix-org/matrix-react-sdk#9508)). Fixes element-hq#23481.
* Reinstate timeline/redaction callbacks when updating notification state ([\element-hq#9494](matrix-org/matrix-react-sdk#9494)). Fixes element-hq#23554.
* Only render NotificationBadge when needed ([\element-hq#9493](matrix-org/matrix-react-sdk#9493)). Fixes element-hq#23584.
* Fix embedded Element Call screen sharing ([\element-hq#9485](matrix-org/matrix-react-sdk#9485)). Fixes element-hq#23571.
* Send Content-Type: application/json header for integration manager /register API ([\element-hq#9490](matrix-org/matrix-react-sdk#9490)). Fixes element-hq#23580.
* Fix joining calls without audio or video inputs ([\element-hq#9486](matrix-org/matrix-react-sdk#9486)). Fixes element-hq#23511.
* Ensure spaces in the spotlight dialog have rounded square avatars ([\element-hq#9480](matrix-org/matrix-react-sdk#9480)). Fixes element-hq#23515.
* Only show mini avatar uploader in room intro when no avatar yet exists ([\element-hq#9479](matrix-org/matrix-react-sdk#9479)). Fixes element-hq#23552.
* Fix threads fallback incorrectly targets root event ([\element-hq#9229](matrix-org/matrix-react-sdk#9229)). Fixes element-hq#23147.
* Align video call icon with banner text ([\element-hq#9460](matrix-org/matrix-react-sdk#9460)).
* Set relations helper when creating event tile context menu ([\element-hq#9253](matrix-org/matrix-react-sdk#9253)). Fixes element-hq#22018.
* Device manager - put client/browser device metadata in correct section ([\element-hq#9447](matrix-org/matrix-react-sdk#9447)). Contributed by @kerryarchibald.
* Update the room unread notification counter when the server changes the value without any related read receipt ([\element-hq#9438](matrix-org/matrix-react-sdk#9438)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants