Closed
Bug 742115
Opened 13 years ago
Closed 13 years ago
Add config preferences to tweak panning speed
Categories
(Firefox for Android Graveyard :: General, defect)
Tracking
(firefox14 fixed, firefox15 verified, blocking-fennec1.0 beta+)
VERIFIED
FIXED
Firefox 14
People
(Reporter: BenWa, Assigned: kats)
References
Details
Attachments
(1 file, 2 obsolete files)
|
9.49 KB,
patch
|
kats
:
review+
|
Details | Diff | Splinter Review |
Currently we pan too fast on fennec, a small fling is sufficient to scroll from the top to the bottom of the page. I feel like the user experience of this is terrible with people with poor motor skills or even myself.
The current speed is also too high for our rendering engine to keep up even on desktop hardware.
I suggest that we reasonably reduce the panning speed. Here are a few things we can try:
1) Reduce the acceleration from a single fling
2) Add a max velocity
3) Adjust friction
| Assignee | ||
Comment 1•13 years ago
|
||
This is easy enough to implement by twiddling various constants in Axis.java. We'll probably want UX to weigh in on this though.
| Assignee | ||
Updated•13 years ago
|
blocking-fennec1.0: --- → ?
Comment 2•13 years ago
|
||
Are these new dynamics because of rewrite? The feel of it seemed fine to me before. Benoit - can you give me a quick demo?
| Reporter | ||
Comment 3•13 years ago
|
||
They changed from xul to native but haven't changed since the OMTC/Maple feature landed. I can show you if you drop by at my desk.
Comment 4•13 years ago
|
||
Benoit, can you make the case to Madhava so we can make a decision here?
Assignee: nobody → bgirard
blocking-fennec1.0: ? → beta+
| Reporter | ||
Comment 5•13 years ago
|
||
I discussed with madhava. There's no a huge difference but there seems to be some room we can play around with to reduce thing. I think the first thing we should do it decrease the speed at which we pan and increase the friction to keep the fling distance traveled the same.
We need to find someone to own this task. The code leave in Axis.java and is trivial to implement on a technical level, it just needs careful tweaking of the factors.
We should produce some tests build with parameters we think are improvements. Any takers?
Assignee: bgirard → nobody
Updated•13 years ago
|
Assignee: nobody → joe
Updated•13 years ago
|
Summary: Fennec pans too fast → Add config preferences to tweak panning speed
Comment 7•13 years ago
|
||
This has only been very lightly tested, and I will not be around to commit it, so help is appreciated!
Attachment #614192 -
Flags: review?(bugmail.mozilla)
Updated•13 years ago
|
Whiteboard: [autoland-try]
Updated•13 years ago
|
Whiteboard: [autoland-try] → [autoland-in-queue]
Comment 8•13 years ago
|
||
Unfortunately it seems that these prefs are not live, so we have to restart :(
Comment 9•13 years ago
|
||
Autoland Patchset:
Patches: 614192
Branch: mozilla-central => try
Patch 614192 could not be applied to mozilla-central.
patching file mobile/android/app/mobile.js
Hunk #1 FAILED at 703
1 out of 1 hunks FAILED -- saving rejects to file mobile/android/app/mobile.js.rej
patch failed, unable to continue (try -v)
patch failed, rejects left in working dir
Patchset could not be applied and pushed.
Updated•13 years ago
|
Whiteboard: [autoland-in-queue]
| Assignee | ||
Comment 10•13 years ago
|
||
I'm shamelessly stealing :joe's patch since he said he wouldn't be around for the next few days. This updated version applies on top of the new v3 patch in bug 744241 and uses the map-of-prefs introduced there to eliminate method explosion.
Attachment #614192 -
Attachment is obsolete: true
Attachment #614192 -
Flags: review?(bugmail.mozilla)
Attachment #614390 -
Flags: review?(chrislord.net)
| Assignee | ||
Updated•13 years ago
|
Assignee: joe → bugmail.mozilla
Updated•13 years ago
|
blocking-fennec1.0: ? → beta+
Comment 11•13 years ago
|
||
Comment on attachment 614390 [details] [diff] [review]
enpreferenceize (rebased and modified)
Review of attachment 614390 [details] [diff] [review]:
-----------------------------------------------------------------
r+ with these two comments addressed.
::: mobile/android/app/mobile.js
@@ +737,5 @@
> +// The fraction of the surface which can be overscrolled before it must snap back, in 1000ths.
> +pref("gfx.scrolling.overscroll_snap_limit", 300);
> +// The minimum amount of space that must be present for an axis to be considered scrollable,
> +// in 1/1000ths of pixels.
> +pref("gfx.scrolling.min_scrollable_distance", 500);
I don't get all this 1000th's business, but it's in xul-fennec too so I assume there's some reason for it...
One thing I will say, the prefix shouldn't be gfx.scrolling, it should be ui.scrolling (going on the prefix of PanZoomController.java)
::: mobile/android/base/ui/Axis.java
@@ +92,5 @@
> + VELOCITY_THRESHOLD = getIntPref(prefs, PREF_SCROLLING_VELOCITY_THRESHOLD, 10);
> + MAX_EVENT_ACCELERATION = getFloatPref(prefs, PREF_SCROLLING_MAX_EVENT_ACCELERATION, 12);
> + OVERSCROLL_DECEL_RATE = getFloatPref(prefs, PREF_SCROLLING_OVERSCROLL_DECEL_RATE, 40);
> + SNAP_LIMIT = getFloatPref(prefs, PREF_SCROLLING_OVERSCROLL_SNAP_LIMIT, 300);
> + MIN_SCROLLABLE_DISTANCE = getFloatPref(prefs, PREF_SCROLLING_MIN_SCROLLABLE_DISTANCE, 500);
We shouldn't have all these values in two places, it's just going to get desynced at some point. Either they should only be here or only above.
Attachment #614390 -
Flags: review?(chrislord.net) → review+
| Assignee | ||
Comment 12•13 years ago
|
||
Updated patch, carrying r+
(In reply to Chris Lord [:cwiiis] from comment #11)
> I don't get all this 1000th's business, but it's in xul-fennec too so I
> assume there's some reason for it...
As discussed on IRC, presumably this because this was preferable to having string prefs and parsing floats from it, since we can't have float prefs.
> One thing I will say, the prefix shouldn't be gfx.scrolling, it should be
> ui.scrolling (going on the prefix of PanZoomController.java)
Fixed
> We shouldn't have all these values in two places, it's just going to get
> desynced at some point. Either they should only be here or only above.
Fixed. I now keep the default values in one place in Java only, and initialize the prefs to -1. When setting prefs any negative prefs are ignored in favour of the default value.
Attachment #614390 -
Attachment is obsolete: true
Attachment #614774 -
Flags: review+
| Assignee | ||
Comment 13•13 years ago
|
||
status-firefox14:
--- → fixed
OS: Mac OS X → Android
Hardware: x86 → All
Target Milestone: --- → Firefox 14
Comment 14•13 years ago
|
||
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Comment 15•13 years ago
|
||
Panning speed is changed now on the latest Nightly. Long pages are no longer pannable with just one fast pan move. Closing bug as verified fixed on:
Firefox 15.0a1 (2012-05-23)
Device: Galaxy Nexus
OS: Android 4.0.2
Status: RESOLVED → VERIFIED
status-firefox15:
--- → verified
Updated•4 years ago
|
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•