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); |