Bug 1278818 - Convert window coordinates to desktop pixels before passing to ScreenForRect. r=emk, a=sylvestre
--- a/widget/nsBaseWidget.cpp
+++ b/widget/nsBaseWidget.cpp
@@ -1931,19 +1931,20 @@ nsBaseWidget::GetWidgetScreen()
nsCOMPtr<nsIScreenManager> screenManager;
screenManager = do_GetService("@mozilla.org/gfx/screenmanager;1");
if (!screenManager) {
return nullptr;
}
LayoutDeviceIntRect bounds;
GetScreenBounds(bounds);
+ DesktopIntRect deskBounds = RoundedToInt(bounds / GetDesktopToDeviceScale());
nsCOMPtr<nsIScreen> screen;
- screenManager->ScreenForRect(bounds.x, bounds.y,
- bounds.width, bounds.height,
+ screenManager->ScreenForRect(deskBounds.x, deskBounds.y,
+ deskBounds.width, deskBounds.height,
getter_AddRefs(screen));
return screen.forget();
}
nsresult
nsIWidget::SynthesizeNativeTouchTap(LayoutDeviceIntPoint aPoint, bool aLongTap,
nsIObserver* aObserver)
{