Commit e16941d5 authored by Sandor Molnar's avatar Sandor Molnar
Browse files

Backed out changeset 0f2913c81558 (bug 1809430) for causing multiple failures.

parent d83e7a60
Loading
Loading
Loading
Loading
+10 −13
Original line number Diff line number Diff line
@@ -869,19 +869,16 @@ void nsContainerFrame::SetSizeConstraints(nsPresContext* aPresContext,
  // The sizes are in inner window sizes, so convert them into outer window
  // sizes. Use a size of (200, 200) as only the difference between the inner
  // and outer size is needed.
  const LayoutDeviceIntSize sizeDiff = aWidget->ClientToWindowSizeDifference();
  if (constraints.mMinSize.width) {
    constraints.mMinSize.width += sizeDiff.width;
  }
  if (constraints.mMinSize.height) {
    constraints.mMinSize.height += sizeDiff.height;
  }
  if (constraints.mMaxSize.width != NS_MAXSIZE) {
    constraints.mMaxSize.width += sizeDiff.width;
  }
  if (constraints.mMaxSize.height != NS_MAXSIZE) {
    constraints.mMaxSize.height += sizeDiff.height;
  }
  LayoutDeviceIntSize windowSize =
      aWidget->ClientToWindowSize(LayoutDeviceIntSize(200, 200));
  if (constraints.mMinSize.width)
    constraints.mMinSize.width += windowSize.width - 200;
  if (constraints.mMinSize.height)
    constraints.mMinSize.height += windowSize.height - 200;
  if (constraints.mMaxSize.width != NS_MAXSIZE)
    constraints.mMaxSize.width += windowSize.width - 200;
  if (constraints.mMaxSize.height != NS_MAXSIZE)
    constraints.mMaxSize.height += windowSize.height - 200;

  aWidget->SetSizeConstraints(constraints);
}
+1 −1
Original line number Diff line number Diff line
@@ -249,7 +249,7 @@ class nsCocoaWindow final : public nsBaseWidget, public nsPIWidgetCocoa {
  virtual void SetFocus(Raise, mozilla::dom::CallerType aCallerType) override;
  virtual LayoutDeviceIntPoint WidgetToScreenOffset() override;
  virtual LayoutDeviceIntPoint GetClientOffset() override;
  virtual LayoutDeviceIntMargin ClientToWindowMargin() override;
  virtual LayoutDeviceIntSize ClientToWindowSize(const LayoutDeviceIntSize& aClientSize) override;

  virtual void* GetNativeData(uint32_t aDataType) override;

+8 −9
Original line number Diff line number Diff line
@@ -2224,23 +2224,22 @@ LayoutDeviceIntPoint nsCocoaWindow::GetClientOffset() {
  NS_OBJC_END_TRY_BLOCK_RETURN(LayoutDeviceIntPoint(0, 0));
}

LayoutDeviceIntMargin nsCocoaWindow::ClientToWindowMargin() {
LayoutDeviceIntSize nsCocoaWindow::ClientToWindowSize(const LayoutDeviceIntSize& aClientSize) {
  NS_OBJC_BEGIN_TRY_BLOCK_RETURN;

  if (!mWindow) {
    return {};
    return LayoutDeviceIntSize(0, 0);
  }

  NSRect clientNSRect = [mWindow contentLayoutRect];
  NSRect frameNSRect = [mWindow frameRectForContentRect:clientNSRect];

  CGFloat backingScale = BackingScaleFactor();
  const auto clientRect = nsCocoaUtils::CocoaRectToGeckoRectDevPix(clientNSRect, backingScale);
  const auto frameRect = nsCocoaUtils::CocoaRectToGeckoRectDevPix(frameNSRect, backingScale);
  LayoutDeviceIntRect r(0, 0, aClientSize.width, aClientSize.height);
  NSRect rect = nsCocoaUtils::DevPixelsToCocoaPoints(r, backingScale);

  return frameRect - clientRect;
  NSRect maybeInflatedRect = [mWindow frameRectForContentRect:rect];
  r = nsCocoaUtils::CocoaRectToGeckoRectDevPix(maybeInflatedRect, backingScale);
  return r.Size();

  NS_OBJC_END_TRY_BLOCK_RETURN({});
  NS_OBJC_END_TRY_BLOCK_RETURN(LayoutDeviceIntSize(0, 0));
}

nsMenuBarX* nsCocoaWindow::GetMenuBar() { return mMenuBar; }
+0 −9
Original line number Diff line number Diff line
@@ -567,15 +567,6 @@ nsIntSize nsIWidget::CustomCursorSize(const Cursor& aCursor) {
  return {width, height};
}

LayoutDeviceIntSize nsIWidget::ClientToWindowSizeDifference() {
  auto margin = ClientToWindowMargin();
  MOZ_ASSERT(margin.top >= 0, "Window should be bigger than client area");
  MOZ_ASSERT(margin.left >= 0, "Window should be bigger than client area");
  MOZ_ASSERT(margin.right >= 0, "Window should be bigger than client area");
  MOZ_ASSERT(margin.bottom >= 0, "Window should be bigger than client area");
  return {margin.LeftRight(), margin.TopBottom()};
}

RefPtr<mozilla::VsyncDispatcher> nsIWidget::GetVsyncDispatcher() {
  return nullptr;
}
+5 −0
Original line number Diff line number Diff line
@@ -365,6 +365,11 @@ class nsBaseWidget : public nsIWidget, public nsSupportsWeakReference {

  nsPopupLevel PopupLevel() { return mPopupLevel; }

  LayoutDeviceIntSize ClientToWindowSize(
      const LayoutDeviceIntSize& aClientSize) override {
    return aClientSize;
  }

  // return true if this is a popup widget with a native titlebar
  bool IsPopupWithTitleBar() const {
    return (mWindowType == eWindowType_popup &&
Loading