Changeset 147537 in webkit
- Timestamp:
- Apr 3, 2013 4:06:26 AM (11 years ago)
- Location:
- trunk/Source/WebKit/blackberry
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/blackberry/Api/WebPage.cpp
r147212 r147537 3651 3651 } 3652 3652 3653 void WebPagePrivate::setViewportSize(const IntSize& transformedActualVisibleSize, bool ensureFocusElementVisible)3653 bool WebPagePrivate::setViewportSize(const IntSize& transformedActualVisibleSize, const IntSize& defaultLayoutSize, bool ensureFocusElementVisible) 3654 3654 { 3655 3655 if (m_pendingOrientation == -1 && transformedActualVisibleSize == this->transformedActualVisibleSize()) 3656 return ;3656 return false; 3657 3657 3658 3658 // Suspend all screen updates to the backingstore to make sure no-one tries to blit … … 3679 3679 bool atLeft = !scrollPosition().x(); 3680 3680 3681 setDefaultLayoutSize( transformedActualVisibleSize);3681 setDefaultLayoutSize(defaultLayoutSize); 3682 3682 3683 3683 // Recompute our virtual viewport. … … 3899 3899 m_backingStore->d->resumeScreenUpdates(screenResumeOperation); 3900 3900 m_inputHandler->redrawSpellCheckDialogIfRequired(); 3901 } 3902 3903 void WebPage::setViewportSize(const Platform::IntSize& viewportSize, bool ensureFocusElementVisible) 3904 { 3905 d->setViewportSize(viewportSize, ensureFocusElementVisible); 3901 3902 return true; 3903 } 3904 3905 void WebPage::setViewportSize(const Platform::IntSize& viewportSize, const Platform::IntSize& defaultLayoutSize, bool ensureFocusElementVisible) 3906 { 3907 if (!d->setViewportSize(viewportSize, defaultLayoutSize, ensureFocusElementVisible)) { 3908 // If the viewport didn't change, try to apply only the new default layout size. 3909 setDefaultLayoutSize(defaultLayoutSize); 3910 } 3906 3911 } 3907 3912 … … 3913 3918 } 3914 3919 3920 Platform::IntSize WebPage::defaultLayoutSize() const 3921 { 3922 return d->m_defaultLayoutSize; 3923 } 3924 3915 3925 void WebPage::setDefaultLayoutSize(const Platform::IntSize& platformSize) 3916 3926 { 3927 bool needsLayout = false; 3917 3928 WebCore::IntSize size = platformSize; 3918 3929 if (size == d->m_defaultLayoutSize) … … 3920 3931 3921 3932 d->setDefaultLayoutSize(size); 3922 bool needsLayout = d->setViewMode(d->viewMode()); 3933 3934 // The default layout size affects interpretation of any viewport arguments present. 3935 Platform::IntSize virtualViewportSize = d->recomputeVirtualViewportFromViewportArguments(); 3936 if (!virtualViewportSize.isEmpty()) { 3937 setVirtualViewportSize(virtualViewportSize); 3938 needsLayout = true; 3939 } 3940 3941 if (d->setViewMode(d->viewMode())) 3942 needsLayout = true; 3943 3923 3944 if (needsLayout) { 3924 3945 d->setNeedsLayout(); -
trunk/Source/WebKit/blackberry/Api/WebPage.h
r146845 r147537 143 143 144 144 Platform::ViewportAccessor* webkitThreadViewportAccessor() const; 145 146 // Returns the size of the visual viewport. 145 147 Platform::IntSize viewportSize() const; 146 void setViewportSize(const Platform::IntSize&, bool ensureFocusElementVisible = true); 148 149 // Sets the sizes of the visual viewport and the layout viewport. 150 void setViewportSize(const Platform::IntSize& viewportSize, const Platform::IntSize& defaultLayoutSize, bool ensureFocusElementVisible = true); 147 151 148 152 void resetVirtualViewportOnCommitted(bool reset); 149 153 void setVirtualViewportSize(const Platform::IntSize&); 150 154 151 // Used for default layout size unless overridden by web content or by other APIs. 155 // Returns the size of the layout viewport. 156 Platform::IntSize defaultLayoutSize() const; 157 158 // Set the size of the layout viewport, in document coordinates, independently of the visual viewport. 152 159 void setDefaultLayoutSize(const Platform::IntSize&); 153 160 -
trunk/Source/WebKit/blackberry/Api/WebPage_p.h
r146960 r147537 376 376 void setScreenOrientation(int); 377 377 378 // Scroll and/or zoom so that the WebPage fits the new actual 379 // visible size.380 void setViewportSize(const WebCore::IntSize& transformedActualVisibleSize, bool ensureFocusElementVisible);378 // Scroll and/or zoom so that the WebPage fits the new actual visible size, a.k.a. visual viewport. 379 // Also sets the default layout size, a.k.a. the layout viewport. 380 bool setViewportSize(const WebCore::IntSize& transformedActualVisibleSize, const WebCore::IntSize& defaultLayoutSize, bool ensureFocusElementVisible); 381 381 382 382 void scheduleDeferrableTimer(WebCore::Timer<WebPagePrivate>*, double timeOut); -
trunk/Source/WebKit/blackberry/ChangeLog
r147497 r147537 1 2013-04-03 Arvid Nilsson <anilsson@rim.com> 2 3 [BlackBerry] Decouple layout viewport from visual viewport 4 https://bugs.webkit.org/show_bug.cgi?id=113829 5 6 Reviewed by Carlos Garcia Campos. 7 8 Setting the visual viewport would force the layout viewport equal to 9 the visual viewport. Decouple the viewports by allowing the user to 10 specify a layout viewport when setting the viewport(s). The layout 11 viewport could be the exact same value passed for visual viewport, if 12 the old behavior is desired. 13 14 Also reevaluate any viewport arguments when (only) the layout viewport 15 changes in WebPage::setDefaultLayoutSize() since the layout viewport is 16 used as input to the calculation. 17 18 * Api/WebPage.cpp: 19 (BlackBerry::WebKit::WebPagePrivate::setScreenOrientation): 20 (BlackBerry::WebKit::WebPagePrivate::setViewportSize): 21 (BlackBerry::WebKit::WebPage::setViewportSize): 22 (WebKit): 23 (BlackBerry::WebKit::WebPagePrivate::setDefaultLayoutSize): 24 (BlackBerry::WebKit::WebPage::defaultLayoutSize): 25 * Api/WebPage.h: 26 * Api/WebPage_p.h: 27 (WebPagePrivate): 28 1 29 2013-04-02 Maxim Mogilnitsky <mmogilnitsky@rim.com> 2 30
Note: See TracChangeset
for help on using the changeset viewer.