diff options
author | Mangesh Ghiware <mghiware@google.com> | 2012-05-18 10:18:45 -0700 |
---|---|---|
committer | Mangesh Ghiware <mghiware@google.com> | 2012-05-18 17:48:12 -0700 |
commit | 541af8dff4d592277d0f835deafaf728dad8bc57 (patch) | |
tree | 2b271cb9a99f476c188d3192c5b9e02023af9e6c /Source/WebCore/platform | |
parent | c6097fa86138b3dc74b91e12017cfab615fa0f38 (diff) | |
download | external_webkit-541af8dff4d592277d0f835deafaf728dad8bc57.zip external_webkit-541af8dff4d592277d0f835deafaf728dad8bc57.tar.gz external_webkit-541af8dff4d592277d0f835deafaf728dad8bc57.tar.bz2 |
Revert part of "Fix iframe, ..."
Fix DOMWindow innerWidth and innerHeight to report correct values even
after an orientation change. Uses platform-specific widget.
This reverts part of commit I588aa5709e7a3c2ced9479c3cf9c1827bf6f7733.
Bug: 6479900
Change-Id: Ic5c8785e35b14d6723eee4f4dfe1b0a3e1ec284a
Diffstat (limited to 'Source/WebCore/platform')
-rw-r--r-- | Source/WebCore/platform/ScrollView.cpp | 24 | ||||
-rw-r--r-- | Source/WebCore/platform/ScrollView.h | 11 | ||||
-rw-r--r-- | Source/WebCore/platform/android/ScrollViewAndroid.cpp | 28 | ||||
-rw-r--r-- | Source/WebCore/platform/android/WidgetAndroid.cpp | 9 |
4 files changed, 71 insertions, 1 deletions
diff --git a/Source/WebCore/platform/ScrollView.cpp b/Source/WebCore/platform/ScrollView.cpp index 140c8e5..864fdc5 100644 --- a/Source/WebCore/platform/ScrollView.cpp +++ b/Source/WebCore/platform/ScrollView.cpp @@ -308,6 +308,30 @@ void ScrollView::setContentsSize(const IntSize& newSize) } #if PLATFORM(ANDROID) +int ScrollView::actualWidth() const { + if (platformWidget()) + return platformActualWidth(); + return width(); +} + +int ScrollView::actualHeight() const { + if (platformWidget()) + return platformActualHeight(); + return height(); +} + +int ScrollView::actualScrollX() const { + if (platformWidget()) + return platformActualScrollX(); + return scrollX(); +} + +int ScrollView::actualScrollY() const { + if (platformWidget()) + return platformActualScrollY(); + return scrollY(); +} + FrameView* ScrollView::frameView() { if (this->isFrameView()) { FrameView* frameView = reinterpret_cast<FrameView*>(this); diff --git a/Source/WebCore/platform/ScrollView.h b/Source/WebCore/platform/ScrollView.h index e58d025..3228870 100644 --- a/Source/WebCore/platform/ScrollView.h +++ b/Source/WebCore/platform/ScrollView.h @@ -172,6 +172,10 @@ public: virtual void setContentsSize(const IntSize&); #if PLATFORM(ANDROID) + int actualWidth() const; + int actualHeight() const; + int actualScrollX() const; + int actualScrollY() const; FrameView* frameView(); #endif @@ -401,6 +405,13 @@ private: void platformSetScrollOrigin(const IntPoint&, bool updatePositionAtAll, bool updatePositionSynchronously); +#if PLATFORM(ANDROID) + int platformActualWidth() const; + int platformActualHeight() const; + int platformActualScrollX() const; + int platformActualScrollY() const; +#endif + #if PLATFORM(MAC) && defined __OBJC__ public: NSView* documentView() const; diff --git a/Source/WebCore/platform/android/ScrollViewAndroid.cpp b/Source/WebCore/platform/android/ScrollViewAndroid.cpp index cc1c09e..e7300a1 100644 --- a/Source/WebCore/platform/android/ScrollViewAndroid.cpp +++ b/Source/WebCore/platform/android/ScrollViewAndroid.cpp @@ -68,6 +68,34 @@ IntSize ScrollView::platformContentsSize() const return m_contentsSize; } +int ScrollView::platformActualWidth() const +{ + if (parent()) + return width(); + return platformWidget()->visibleWidth(); +} + +int ScrollView::platformActualHeight() const +{ + if (parent()) + return height(); + return platformWidget()->visibleHeight(); +} + +int ScrollView::platformActualScrollX() const +{ + if (parent()) + return scrollX(); + return platformWidget()->visibleX(); +} + +int ScrollView::platformActualScrollY() const +{ + if (parent()) + return scrollY(); + return platformWidget()->visibleY(); +} + void ScrollView::platformSetScrollPosition(const WebCore::IntPoint& pt) { PlatformBridge::setScrollPosition(this, m_scrollOrigin.x() + pt.x(), diff --git a/Source/WebCore/platform/android/WidgetAndroid.cpp b/Source/WebCore/platform/android/WidgetAndroid.cpp index 6858f29..3c5b1c8 100644 --- a/Source/WebCore/platform/android/WidgetAndroid.cpp +++ b/Source/WebCore/platform/android/WidgetAndroid.cpp @@ -49,7 +49,9 @@ Widget::~Widget() IntRect Widget::frameRect() const { - return m_frame; + if (!platformWidget()) + return m_frame; + return platformWidget()->getBounds(); } void Widget::setFocus(bool focused) @@ -89,6 +91,11 @@ void Widget::hide() void Widget::setFrameRect(const IntRect& rect) { m_frame = rect; + // platformWidget() is 0 when called from Scrollbar + if (!platformWidget()) + return; + platformWidget()->setLocation(rect.x(), rect.y()); + platformWidget()->setSize(rect.width(), rect.height()); } void Widget::setIsSelected(bool isSelected) |