diff options
Diffstat (limited to 'src/3rdparty/webkit/WebCore/platform/mac/WidgetMac.mm')
-rw-r--r-- | src/3rdparty/webkit/WebCore/platform/mac/WidgetMac.mm | 74 |
1 files changed, 27 insertions, 47 deletions
diff --git a/src/3rdparty/webkit/WebCore/platform/mac/WidgetMac.mm b/src/3rdparty/webkit/WebCore/platform/mac/WidgetMac.mm index 1aaf4b2212..8653a03fed 100644 --- a/src/3rdparty/webkit/WebCore/platform/mac/WidgetMac.mm +++ b/src/3rdparty/webkit/WebCore/platform/mac/WidgetMac.mm @@ -283,72 +283,52 @@ void Widget::afterMouseDown(NSView *view, Widget* widget) } } -IntPoint Widget::convertFromContainingWindow(const IntPoint& point) const +// These are here to deal with flipped coords on Mac. +IntRect Widget::convertFromRootToContainingWindow(const Widget* rootWidget, const IntRect& rect) { - if (!platformWidget()) { - if (!parent()) - return point; - IntPoint result = parent()->convertFromContainingWindow(point); - result.move(parent()->scrollX() - x(), parent()->scrollY() - y()); - return result; - } - + if (!rootWidget->platformWidget()) + return rect; + BEGIN_BLOCK_OBJC_EXCEPTIONS; - return IntPoint([platformWidget() convertPoint:point fromView:nil]); + return enclosingIntRect([rootWidget->platformWidget() convertRect:rect toView:nil]); END_BLOCK_OBJC_EXCEPTIONS; - - return point; + + return rect; } -IntRect Widget::convertFromContainingWindow(const IntRect& rect) const +IntRect Widget::convertFromContainingWindowToRoot(const Widget* rootWidget, const IntRect& rect) { - if (!platformWidget()) { - if (!parent()) - return rect; - IntRect result = parent()->convertFromContainingWindow(rect); - result.move(parent()->scrollX() - x(), parent()->scrollY() - y()); - return result; - } - + if (!rootWidget->platformWidget()) + return rect; + BEGIN_BLOCK_OBJC_EXCEPTIONS; - return enclosingIntRect([platformWidget() convertRect:rect fromView:nil]); + return enclosingIntRect([rootWidget->platformWidget() convertRect:rect fromView:nil]); END_BLOCK_OBJC_EXCEPTIONS; - + return rect; } -IntRect Widget::convertToContainingWindow(const IntRect& r) const +IntPoint Widget::convertFromRootToContainingWindow(const Widget* rootWidget, const IntPoint& point) { - if (!platformWidget()) { - if (!parent()) - return r; - IntRect result = r; - result.move(parent()->scrollX() - x(), parent()->scrollY() - y()); - return parent()->convertToContainingWindow(result); - } - + if (!rootWidget->platformWidget()) + return point; + BEGIN_BLOCK_OBJC_EXCEPTIONS; - return IntRect([platformWidget() convertRect:r toView:nil]); + return IntPoint([rootWidget->platformWidget() convertPoint:point toView:nil]); END_BLOCK_OBJC_EXCEPTIONS; - - return r; + return point; } - -IntPoint Widget::convertToContainingWindow(const IntPoint& p) const + +IntPoint Widget::convertFromContainingWindowToRoot(const Widget* rootWidget, const IntPoint& point) { - if (!platformWidget()) { - if (!parent()) - return p; - IntPoint result = p; - result.move(parent()->scrollX() - x(), parent()->scrollY() - y()); - return parent()->convertToContainingWindow(result); - } - + if (!rootWidget->platformWidget()) + return point; + BEGIN_BLOCK_OBJC_EXCEPTIONS; - return IntPoint([platformWidget() convertPoint:p toView:nil]); + return IntPoint([rootWidget->platformWidget() convertPoint:point fromView:nil]); END_BLOCK_OBJC_EXCEPTIONS; - return p; + return point; } void Widget::releasePlatformWidget() |