| Index: Source/web/PopupContainer.cpp
|
| diff --git a/Source/web/PopupContainer.cpp b/Source/web/PopupContainer.cpp
|
| index 61aee602988489ee0421f85403889bd610d503b2..9d83814a509525d2fcbbea90eefa0357244bac16 100644
|
| --- a/Source/web/PopupContainer.cpp
|
| +++ b/Source/web/PopupContainer.cpp
|
| @@ -112,7 +112,7 @@ void PopupContainer::trace(Visitor* visitor)
|
| Widget::trace(visitor);
|
| }
|
|
|
| -IntRect PopupContainer::layoutAndCalculateWidgetRectInternal(IntRect widgetRectInScreen, int targetControlHeight, const FloatRect& windowRect, const FloatRect& screen, bool isRTL, const int rtlOffset, const int verticalOffset, const IntSize& transformOffset, PopupContent* listBox, bool& needToResizeView)
|
| +IntRect PopupContainer::layoutAndCalculateWidgetRectInternal(IntRect widgetRectInScreen, int targetControlHeight, const IntRect& windowRect, const IntRect& screen, bool isRTL, const int rtlOffset, const int verticalOffset, const IntSize& transformOffset, PopupContent* listBox, bool& needToResizeView)
|
| {
|
| ASSERT(listBox);
|
| if (windowRect.x() >= screen.x() && windowRect.maxX() <= screen.maxX() && (widgetRectInScreen.x() < screen.x() || widgetRectInScreen.maxX() > screen.maxX())) {
|
| @@ -121,9 +121,8 @@ IntRect PopupContainer::layoutAndCalculateWidgetRectInternal(IntRect widgetRectI
|
| IntRect inverseWidgetRectInScreen = widgetRectInScreen;
|
| inverseWidgetRectInScreen.setX(inverseWidgetRectInScreen.x() + (isRTL ? -rtlOffset : rtlOffset));
|
| inverseWidgetRectInScreen.setY(inverseWidgetRectInScreen.y() + (isRTL ? -verticalOffset : verticalOffset));
|
| - IntRect enclosingScreen = enclosingIntRect(screen);
|
| - unsigned originalCutoff = std::max(enclosingScreen.x() - widgetRectInScreen.x(), 0) + std::max(widgetRectInScreen.maxX() - enclosingScreen.maxX(), 0);
|
| - unsigned inverseCutoff = std::max(enclosingScreen.x() - inverseWidgetRectInScreen.x(), 0) + std::max(inverseWidgetRectInScreen.maxX() - enclosingScreen.maxX(), 0);
|
| + unsigned originalCutoff = std::max(screen.x() - widgetRectInScreen.x(), 0) + std::max(widgetRectInScreen.maxX() - screen.maxX(), 0);
|
| + unsigned inverseCutoff = std::max(screen.x() - inverseWidgetRectInScreen.x(), 0) + std::max(inverseWidgetRectInScreen.maxX() - screen.maxX(), 0);
|
|
|
| // Accept the inverse popup alignment if the trimmed content gets
|
| // shorter than that in the original alignment case.
|
| @@ -198,7 +197,7 @@ IntRect PopupContainer::layoutAndCalculateWidgetRect(int targetControlHeight, co
|
| IntRect widgetRectInScreen;
|
| // If the popup would extend past the bottom of the screen, open upwards
|
| // instead.
|
| - FloatRect screen = screenAvailableRect(m_frameView.get());
|
| + IntRect screen = screenAvailableRect(m_frameView.get());
|
| // Use popupInitialCoordinate.x() + rightOffset because RTL position
|
| // needs to be considered.
|
| float pageScaleFactor = m_frameView->frame().page()->pageScaleFactor();
|
| @@ -209,7 +208,7 @@ IntRect PopupContainer::layoutAndCalculateWidgetRect(int targetControlHeight, co
|
| // If we have multiple screens and the browser rect is in one screen, we
|
| // have to clip the window width to the screen width.
|
| // When clipping, we also need to set a maximum width for the list box.
|
| - FloatRect windowRect = chromeClient().windowRect();
|
| + IntRect windowRect = chromeClient().windowRect();
|
|
|
| bool needToResizeView = false;
|
| widgetRectInScreen = layoutAndCalculateWidgetRectInternal(widgetRectInScreen, targetControlHeight, windowRect, screen, isRTL, rtlOffset, verticalOffset, transformOffset, m_listBox.get(), needToResizeView);
|
|
|