Closed Bug 431843 Opened 14 years ago Closed 14 years ago

Panning - smooth movement

Categories

(Firefox for Android Graveyard :: Panning/Zooming, enhancement, P1)

Other
All
enhancement

Tracking

(Not tracked)

VERIFIED FIXED
fennec1.0m4

People

(Reporter: christian.bugzilla, Assigned: Gavin)

References

Details

Attachments

(1 file, 1 obsolete file)

 
Assignee: nobody → gavin.sharp
Priority: -- → P1
Target Milestone: --- → Fennec M4
Flags: blocking-fennec1.0+
Attached patch patch (obsolete) — Splinter Review
This patch has two main parts:
1) removal of the deckpage/tab support (r?mfinkle)
2) implementation of canvas-based pan/zoom based on stuart's PoC (r?stuart)

Stuart's original proof of concept used a hardcoded width/height canvas/browser, but I've switched to using a flex-based approach, to support different windows sizes, and resizes. This required an ugly hack to let the canvas know what it's real size is, and using a deck that will flex instead of just two stacks, but it doesn't seem to negatively affect performance, so I figured we can revisit later. margins are used to move the canvas instead of left/right to avoid triggering absolute positioning layout, which seems to be slower.
Attachment #326007 - Flags: review?(pavlov)
Attachment #326007 - Flags: review?(mark.finkle)
Comment on attachment 326007 [details] [diff] [review]
patch

>diff -r 2231628c6a5d app/mobile.js

>+pref("browser.ui.cursor", true);

Ignore this change, of course...
Comment on attachment 326007 [details] [diff] [review]
patch

>diff -r 2231628c6a5d app/mobile.js

>-pref("browser.ui.cursor", false);
>+pref("browser.ui.cursor", true);

Do you want to enable the cursor on the device? or is this just from your PC setup?

>diff -r 2231628c6a5d chrome/content/browser.js

>-function ProgressController(aBrowser) {

>+
>+    // FIXME: until we can get proper canvas repainting hooked up, update the canvas every 300ms
>+    //var tabbrowser = this._tabbrowser;
>+    //setTimeout(function () {
>+    //  tabbrowser.updateCanvasState();
>+    //}, 300);

Yeah, this is short term, but deckbrowser might have a better place for it. No need to let this "detail" leak from the deckbrowser impl.

>   },
> 
>   onStateChange : function(aWebProgress, aRequest, aStateFlags, aStatus) {
>@@ -355,13 +340,14 @@
>             LocationBar.update(TOOLBARSTATE_LOADING);
>           if (HUDBar)
>             HUDBar.update(TOOLBARSTATE_LOADING);
>+          this._tabbrowser.updateCanvasState();

Ok, now I see the issue - we have to leak other things too. We should eventually move this progresscontroller into deckbrowser.


>diff -r 2231628c6a5d chrome/content/deckbrowser.xml

Wow, the way that diff was intermingled was crazy - but it looked ok to me


There are some <command>s you could remove too, right?
Attachment #326007 - Flags: review?(mark.finkle) → review+
(In reply to comment #3)
> Do you want to enable the cursor on the device? or is this just from your PC
> setup?

Yeah, this is just a local change that snuck in.

> Ok, now I see the issue - we have to leak other things too. We should
> eventually move this progresscontroller into deckbrowser.

Could do - not sure it's worth duplicating progresscontrollers just to separate deckbrowser and the rest of the fennec code, though.

> There are some <command>s you could remove too, right?

Could be, will look into that.

Also need to investigate a problem romaxa pointed out with panning on hs.fi (constraint code definitely needs some tweaking).
Comment on attachment 326007 [details] [diff] [review]
patch

this looks mostly right -- i'll do a more full review of this code when i get back from vacation
Attachment #326007 - Flags: review?(pavlov) → review+
- Fixes hs.fi, by using the maximum scrollable width of <html> or <body> (same as the existing ZoomController code)
- Removes unneeded <command>s
Attachment #326007 - Attachment is obsolete: true
Pushed to mobile-browser:
http://hg.mozilla.org/mobile-browser/index.cgi/rev/d31f553a503a

Going to call this fixed, still work to be done in followups though.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
this has been in for a while and verified with beta3
Status: RESOLVED → VERIFIED
Component: General → Panning/Zooming
Depends on: 546352
You need to log in before you can comment on or make changes to this bug.