general.smoothScroll value is clobbered by changing the corresponding the system setting
Categories
(Core :: Layout: Scrolling and Overflow, defect, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox142 | --- | fixed |
People
(Reporter: hiro, Assigned: hiro)
References
Details
Attachments
(3 files)
While reading nsLayoutUtils::RecomputeSmoothScrollDefault code, I realized there's a scenario that general.smoothScroll pref value the user did set is clobbered by the system setting.
The scenario can be observed by the following step;
- Make the general.smoothScroll value be not default, i.e. making the preference entry bold in about:config
- Flip the corresponding system setting
- Restart firefox
- Check the preference value in about:config, the value hasn't yet changed, but it's no longer bold
- Flip the corresponding system setting again
- Restart firefox
| Assignee | ||
Updated•1 year ago
|
Comment 1•11 months ago
|
||
Is there any update on this? It has been more than half an year and I had to manually set this setting everyday (because I use remote desktop daily), which is annoying, to say at at least.
Comment 2•11 months ago
|
||
(In reply to fireattack [:fireattack] from comment #1)
Is there any update on this? It has been more than half an year and I had to manually set this setting everyday (because I use remote desktop daily), which is annoying, to say at at least.
Apologies for this annoying regression. I've raised this bug / bug 1928161 with our team to get it onto our agenda (tracked internally in FFXP-2743) and I'm hoping this is something we can get to early in the year.
| Assignee | ||
Comment 3•6 months ago
|
||
Updated•6 months ago
|
| Assignee | ||
Comment 4•6 months ago
|
||
With this new pref, even if the system's prefers-reduced-mottion setting
is changed for whatever reason, the new pref persists, thus smooth
scrolling is never clobbered by the system setting.
| Assignee | ||
Comment 5•6 months ago
|
||
Though I've posted a patch (D253106) to fix this clobbering bug by introducing a new pref, I am open to any other ideas to solve this bug.
The other idea I can think of is to decouple "general.smoothScroll" from the preferes-reduced-motion setting, which means backing out of bug 1753565.
Comment 6•6 months ago
|
||
I think the root issue of this bug is that changing system setting would cause user-modified general.smoothScroll value to no longer be seen as "modified" (#4 in your step), and I assume this is because this setting's default value is dynamically decided based on the system reduce motion setting, so toggling system setting back and forth will cause its "(non-)default-ness" state to be lost eventually.
I personally think a better solution is to have the default value of general.smoothScroll to be something like "Not set", instead of a dynamic value of True/False that is linked to system setting.
The behavior of scrolling itself, NOT the setting value, should dynamically follow the system setting if the value is "not set". And once actually set by user, it stays that way.
Pseudo code:
If general.smoothScroll == "Not set":
smoothScrollBehavior = !system.reduce_motion_setting
else:
smoothScrollBehavior = general.smoothScroll
I don't know if a pref setting allows it, though.
Comment 7•6 months ago
|
||
/The behavior of scrolling itself, NOT the setting value/The behavior of scrolling itself, NOT the setting value or setting default/s
| Assignee | ||
Comment 8•6 months ago
|
||
The new pref named general.smoothScroll.user is what you mean by "Not set" initially.
Comment 9•6 months ago
|
||
Oh yeah I get it, I just think it could be simpler without introducing another pref. But again, as long as it works, I’ve got no objections.
Comment 10•6 months ago
|
||
Usually we use three state pref for that. For example, 0=false, 1=true, -1=auto (Not Set). Or 0=false, 1=true, 2=auto.
| Assignee | ||
Comment 11•5 months ago
|
||
So that sticky bit works for static prefs.
Updated•5 months ago
|
Comment 12•5 months ago
|
||
Comment 13•5 months ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/2077c9ac7d87
https://hg.mozilla.org/mozilla-central/rev/08ded652dbec
https://hg.mozilla.org/mozilla-central/rev/0a0f2712cb7b
Updated•4 months ago
|
| Assignee | ||
Updated•4 months ago
|
Description
•