From ecd53983ef8e143ad101eac16c97e4fa32f2f677 Mon Sep 17 00:00:00 2001 From: "sharparrow1%yahoo.com" Date: Fri, 24 Aug 2007 17:46:59 +0000 Subject: [PATCH] Bug 391494: full page zoom causes scrollbars to be cut off. r+sr+a=roc git-svn-id: svn://10.0.0.236/trunk@233024 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/layout/base/nsPresContext.cpp | 9 ++++++--- mozilla/layout/base/nsPresContext.h | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/mozilla/layout/base/nsPresContext.cpp b/mozilla/layout/base/nsPresContext.cpp index bde693e6ee9..158296bc286 100644 --- a/mozilla/layout/base/nsPresContext.cpp +++ b/mozilla/layout/base/nsPresContext.cpp @@ -798,6 +798,8 @@ nsPresContext::Init(nsIDeviceContext* aDeviceContext) mDeviceContext = aDeviceContext; NS_ADDREF(mDeviceContext); + mCurAppUnitsPerDevPixel = AppUnitsPerDevPixel(); + if (!mImageLoaders.Init()) return NS_ERROR_OUT_OF_MEMORY; @@ -1145,8 +1147,8 @@ nsPresContext::GetDefaultFontExternal(PRUint8 aFontID) const void nsPresContext::SetFullZoom(float aZoom) { - float oldWidth = mVisibleArea.width * mFullZoom; - float oldHeight = mVisibleArea.height * mFullZoom; + float oldWidth = mVisibleArea.width / float(mCurAppUnitsPerDevPixel); + float oldHeight = mVisibleArea.height / float(mCurAppUnitsPerDevPixel); if (!mShell) { return; } @@ -1155,9 +1157,10 @@ nsPresContext::SetFullZoom(float aZoom) } if (mFullZoom != aZoom) { mFullZoom = aZoom; - GetViewManager()->SetWindowDimensions(oldWidth / aZoom, oldHeight / aZoom); + GetViewManager()->SetWindowDimensions(oldWidth * AppUnitsPerDevPixel(), oldHeight * AppUnitsPerDevPixel()); ClearStyleDataAndReflow(); } + mCurAppUnitsPerDevPixel = AppUnitsPerDevPixel(); } imgIRequest* diff --git a/mozilla/layout/base/nsPresContext.h b/mozilla/layout/base/nsPresContext.h index 93ec0f28969..9930fa64b90 100644 --- a/mozilla/layout/base/nsPresContext.h +++ b/mozilla/layout/base/nsPresContext.h @@ -773,6 +773,7 @@ protected: float mTextZoom; // Text zoom, defaults to 1.0 float mFullZoom; // Page zoom, defaults to 1.0 + PRInt32 mCurAppUnitsPerDevPixel; PRInt32 mAutoQualityMinFontSizePixelsPref; #ifdef IBMBIDI