Bug 563878. Part 4. Add AppUnitsPerDevPixel convenience function to viewmanager. r=mats

(transplanted from fdb1e4bc853db53142b244ddf6e20e9bbab8e636)

--HG--
extra : transplant_source : %FD%B1%E4%BC%85%3D%B51B%B2D%DD%F6%E2%0E%9B%BA%B8%E66
This commit is contained in:
Timothy Nikkel 2010-06-05 15:29:49 -05:00
Родитель 2038e40741
Коммит 6b11eae45c
2 изменённых файлов: 12 добавлений и 6 удалений

Просмотреть файл

@ -44,7 +44,6 @@
#include "nsAutoPtr.h" #include "nsAutoPtr.h"
#include "nsViewManager.h" #include "nsViewManager.h"
#include "nsIDeviceContext.h"
#include "nsGfxCIID.h" #include "nsGfxCIID.h"
#include "nsView.h" #include "nsView.h"
#include "nsISupportsArray.h" #include "nsISupportsArray.h"
@ -652,7 +651,7 @@ nsViewManager::UpdateWidgetArea(nsView *aWidgetView, nsIWidget* aWidget,
childWidget->GetWindowClipRegion(&clipRects); childWidget->GetWindowClipRegion(&clipRects);
for (PRUint32 i = 0; i < clipRects.Length(); ++i) { for (PRUint32 i = 0; i < clipRects.Length(); ++i) {
nsRect rr = (clipRects[i] + bounds.TopLeft()). nsRect rr = (clipRects[i] + bounds.TopLeft()).
ToAppUnits(mContext->AppUnitsPerDevPixel()); ToAppUnits(AppUnitsPerDevPixel());
children.Or(children, rr - aWidgetView->ViewToWidgetOffset()); children.Or(children, rr - aWidgetView->ViewToWidgetOffset());
children.SimplifyInward(20); children.SimplifyInward(20);
} }
@ -752,7 +751,7 @@ NS_IMETHODIMP nsViewManager::DispatchEvent(nsGUIEvent *aEvent,
if (aView == mRootView) if (aView == mRootView)
{ {
PRInt32 p2a = mContext->AppUnitsPerDevPixel(); PRInt32 p2a = AppUnitsPerDevPixel();
SetWindowDimensions(NSIntPixelsToAppUnits(width, p2a), SetWindowDimensions(NSIntPixelsToAppUnits(width, p2a),
NSIntPixelsToAppUnits(height, p2a)); NSIntPixelsToAppUnits(height, p2a));
*aStatus = nsEventStatus_eConsumeNoDefault; *aStatus = nsEventStatus_eConsumeNoDefault;
@ -959,7 +958,7 @@ NS_IMETHODIMP nsViewManager::DispatchEvent(nsGUIEvent *aEvent,
} }
if (nsnull != view) { if (nsnull != view) {
PRInt32 p2a = mContext->AppUnitsPerDevPixel(); PRInt32 p2a = AppUnitsPerDevPixel();
if ((aEvent->message == NS_MOUSE_MOVE && if ((aEvent->message == NS_MOUSE_MOVE &&
static_cast<nsMouseEvent*>(aEvent)->reason == static_cast<nsMouseEvent*>(aEvent)->reason ==
@ -1540,7 +1539,7 @@ nsIntRect nsViewManager::ViewToWidget(nsView *aView, nsView* aWidgetView, const
rect += aView->ViewToWidgetOffset(); rect += aView->ViewToWidgetOffset();
// finally, convert to device coordinates. // finally, convert to device coordinates.
return rect.ToOutsidePixels(mContext->AppUnitsPerDevPixel()); return rect.ToOutsidePixels(AppUnitsPerDevPixel());
} }
NS_IMETHODIMP NS_IMETHODIMP
@ -1754,7 +1753,7 @@ nsViewManager::ProcessSynthMouseMoveEvent(PRBool aFromScroll)
#endif #endif
nsPoint pt; nsPoint pt;
PRInt32 p2a = mContext->AppUnitsPerDevPixel(); PRInt32 p2a = AppUnitsPerDevPixel();
pt.x = NSIntPixelsToAppUnits(mMouseLocation.x, p2a); pt.x = NSIntPixelsToAppUnits(mMouseLocation.x, p2a);
pt.y = NSIntPixelsToAppUnits(mMouseLocation.y, p2a); pt.y = NSIntPixelsToAppUnits(mMouseLocation.y, p2a);
// This could be a bit slow (traverses entire view hierarchy) // This could be a bit slow (traverses entire view hierarchy)

Просмотреть файл

@ -48,6 +48,7 @@
#include "nsIRegion.h" #include "nsIRegion.h"
#include "nsView.h" #include "nsView.h"
#include "nsIViewObserver.h" #include "nsIViewObserver.h"
#include "nsIDeviceContext.h"
/** /**
@ -276,6 +277,12 @@ public: // NOT in nsIViewManager, so private to the view module
// Call this when you need to let the viewmanager know that it now has // Call this when you need to let the viewmanager know that it now has
// pending updates. // pending updates.
void PostPendingUpdate() { RootViewManager()->mHasPendingUpdates = PR_TRUE; } void PostPendingUpdate() { RootViewManager()->mHasPendingUpdates = PR_TRUE; }
PRInt32 AppUnitsPerDevPixel() const
{
return mContext->AppUnitsPerDevPixel();
}
private: private:
nsCOMPtr<nsIDeviceContext> mContext; nsCOMPtr<nsIDeviceContext> mContext;
nsIViewObserver *mObserver; nsIViewObserver *mObserver;