Backed out changeset 9a3a43e8743d (bug 1493081) for bustages on AccessibleWrap.cpp. CLOSED TREE

This commit is contained in:
Csoregi Natalia 2018-10-22 12:00:29 +03:00
parent 2573069720
commit f95bae0402
6 changed files with 3 additions and 49 deletions

View file

@ -320,6 +320,7 @@ void nsView::DoResetWidgetBounds(bool aMoveOnly,
// Stash a copy of these and use them so we can handle this being deleted (say
// from sync painting/flushing from Show/Move/Resize on the widget).
LayoutDeviceIntRect newBounds;
RefPtr<nsDeviceContext> dx = mViewManager->GetDeviceContext();
nsWindowType type = widget->WindowType();
@ -359,8 +360,7 @@ void nsView::DoResetWidgetBounds(bool aMoveOnly,
// because of the potential for device-pixel coordinate spaces for mixed
// hidpi/lodpi screens to overlap each other and result in bad placement
// (bug 814434).
DesktopToLayoutDeviceScale scale = widget->GetDesktopToDeviceScaleByScreen();
DesktopToLayoutDeviceScale scale = dx->GetDesktopToDeviceScale();
DesktopRect deskRect = newBounds / scale;
if (changedPos) {

View file

@ -38,7 +38,6 @@ EXPORTS.mozilla.widget += [
SOURCES += [
'!GeneratedJNIWrappers.cpp',
'EventDispatcher.cpp',
]
UNIFIED_SOURCES += [
@ -48,6 +47,7 @@ UNIFIED_SOURCES += [
'AndroidContentController.cpp',
'AndroidUiThread.cpp',
'ANRReporter.cpp',
'EventDispatcher.cpp',
'GeckoEditableSupport.cpp',
'GfxInfo.cpp',
'nsAndroidProtocolHandler.cpp',

View file

@ -57,7 +57,6 @@
#if defined(MOZ_WAYLAND)
#include <gdk/gdkwayland.h>
#include "nsView.h"
#endif
#include "nsGkAtoms.h"
@ -842,37 +841,6 @@ nsWindow::GetDesktopToDeviceScale()
return DesktopToLayoutDeviceScale(1.0);
}
DesktopToLayoutDeviceScale
nsWindow::GetDesktopToDeviceScaleByScreen()
{
#ifdef MOZ_WAYLAND
GdkDisplay* gdkDisplay = gdk_display_get_default();
// In Wayland there's no way to get absolute position of the window and use it to
// determine the screen factor of the monitor on which the window is placed.
// The window is notified of the current scale factor but not at this point,
// so the GdkScaleFactor can return wrong value which can lead to wrong popup
// placement.
// We need to use parent's window scale factor for the new one.
if (GDK_IS_WAYLAND_DISPLAY(gdkDisplay)) {
nsView* view = nsView::GetViewFor(this);
if (view) {
nsView* parentView = view->GetParent();
if (parentView) {
nsIWidget* parentWidget = parentView->GetNearestWidget(nullptr);
if (parentWidget) {
return DesktopToLayoutDeviceScale(parentWidget->RoundsWidgetCoordinatesTo());
} else {
NS_WARNING("Widget has no parent");
}
}
} else {
NS_WARNING("Cannot find widget view");
}
}
#endif
return nsBaseWidget::GetDesktopToDeviceScale();
}
void
nsWindow::SetParent(nsIWidget *aNewParent)
{

View file

@ -125,7 +125,6 @@ public:
virtual float GetDPI() override;
virtual double GetDefaultScaleInternal() override;
mozilla::DesktopToLayoutDeviceScale GetDesktopToDeviceScale() override;
mozilla::DesktopToLayoutDeviceScale GetDesktopToDeviceScaleByScreen() override;
virtual void SetParent(nsIWidget* aNewParent) override;
virtual void SetModal(bool aModal) override;
virtual bool IsVisible() const override;

View file

@ -24,8 +24,6 @@
#include "nsIWidgetListener.h"
#include "nsPIDOMWindow.h"
#include "nsWeakReference.h"
#include "nsView.h"
#include "nsViewManager.h"
#include <algorithm>
#if defined(XP_WIN)
@ -240,10 +238,6 @@ public:
mozilla::DesktopToLayoutDeviceScale GetDesktopToDeviceScale() override {
return mozilla::DesktopToLayoutDeviceScale(1.0);
}
mozilla::DesktopToLayoutDeviceScale GetDesktopToDeviceScaleByScreen() override {
return (nsView::GetViewFor(this)->GetViewManager()->GetDeviceContext())->GetDesktopToDeviceScale();
}
virtual void ConstrainPosition(bool aAllowSlop,
int32_t *aX,
int32_t *aY) override {}

View file

@ -577,13 +577,6 @@ class nsIWidget : public nsISupports
*/
virtual mozilla::DesktopToLayoutDeviceScale GetDesktopToDeviceScale() = 0;
/**
* Return the scaling factor between device pixels and the platform-
* dependent "desktop pixels" by looking up the screen by the position
* of the widget.
*/
virtual mozilla::DesktopToLayoutDeviceScale GetDesktopToDeviceScaleByScreen() = 0;
/**
* Return the default scale factor for the window. This is the
* default number of device pixels per CSS pixel to use. This should