Bug 858969 - Refactor dynamic toolbar so page is offset and not overlapped. r=kats,nrc

Refactor the dynamic toolbar code so that the ownership of various properties
is clearer, and the page is offset by the toolbar instead of being overlapped.
This fixes problems with the scroll origin of the page not corresponding to
the visible origin on the screen.
This commit is contained in:
Chris Lord
2013-04-24 17:06:23 +01:00
parent 5d6b125815
commit ac2dc65ab2
30 changed files with 691 additions and 559 deletions

View File

@@ -195,6 +195,8 @@ public:
float GetY(JNIEnv *env);
float GetScale(JNIEnv *env);
void GetFixedLayerMargins(JNIEnv *env, gfx::Margin &aFixedLayerMargins);
float GetOffsetX(JNIEnv *env);
float GetOffsetY(JNIEnv *env);
private:
static jclass jViewTransformClass;
@@ -205,6 +207,8 @@ private:
static jfieldID jFixedLayerMarginTop;
static jfieldID jFixedLayerMarginRight;
static jfieldID jFixedLayerMarginBottom;
static jfieldID jOffsetXField;
static jfieldID jOffsetYField;
};
class AndroidProgressiveUpdateData : public WrappedJavaObject {
@@ -266,7 +270,7 @@ public:
void SetPageRect(const gfx::Rect& aCssPageRect);
void SyncViewportInfo(const nsIntRect& aDisplayPort, float aDisplayResolution, bool aLayersUpdated,
nsIntPoint& aScrollOffset, float& aScaleX, float& aScaleY,
gfx::Margin& aFixedLayerMargins);
gfx::Margin& aFixedLayerMargins, float& aOffsetX, float& aOffsetY);
bool ProgressiveUpdateCallback(bool aHasPendingNewThebesContent, const gfx::Rect& aDisplayPort, float aDisplayResolution, bool aDrawingCritical, gfx::Rect& aViewport, float& aScaleX, float& aScaleY);
bool CreateFrame(AutoLocalJNIFrame *jniFrame, AndroidLayerRendererFrame& aFrame);
bool ActivateProgram(AutoLocalJNIFrame *jniFrame);