Changeset 129909 in webkit
- Timestamp:
- Sep 28, 2012, 9:34:07 AM (13 years ago)
- Location:
- trunk/Source/WebKit/blackberry
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/blackberry/Api/WebPage.cpp
r129883 r129909 391 391 #if ENABLE(VIDEO) 392 392 , m_scaleBeforeFullScreen(-1.0) 393 , m_xScrollOffsetBeforeFullScreen(-1)394 393 #endif 395 394 , m_isTogglingFullScreenState(false) … … 3881 3880 #if ENABLE(FULLSCREEN_API) 3882 3881 if (m_isTogglingFullScreenState) { 3882 if (!m_fullscreenVideoNode) { 3883 // When leaving fullscreen mode, we need to restore the scroll position and 3884 // zoom level it was at before fullscreen. 3885 // FIXME: The cached values might get imprecise if user have rotated the 3886 // device while in fullscreen. 3887 if (m_scaleBeforeFullScreen > 0) { 3888 // Restore the scale when leaving fullscreen. We can't use TransformationMatrix::scale(double) here, as it 3889 // will multiply the scale rather than set the scale. 3890 // FIXME: We can refactor this into setCurrentScale(double) if it is useful in the future. 3891 m_transformationMatrix->setM11(m_scaleBeforeFullScreen); 3892 m_transformationMatrix->setM22(m_scaleBeforeFullScreen); 3893 m_scaleBeforeFullScreen = -1.0; 3894 } 3895 m_mainFrame->view()->setScrollPosition(m_scrollOffsetBeforeFullScreen); 3896 } 3897 3883 3898 m_backingStore->d->resumeScreenAndBackingStoreUpdates(BackingStore::RenderAndBlit); 3884 3899 m_isTogglingFullScreenState = false; … … 5959 5974 // position might change. So we keep track of it here, in order to restore it 5960 5975 // once element leaves fullscreen. 5961 WebCore::IntPoint scrollPosition = m_mainFrame->view()->scrollPosition(); 5962 m_xScrollOffsetBeforeFullScreen = scrollPosition.x(); 5976 m_scrollOffsetBeforeFullScreen = m_mainFrame->view()->scrollPosition(); 5963 5977 5964 5978 // The current scale can be clamped to a greater minimum scale when we relayout contents during … … 5987 6001 exitFullscreenForNode(element); 5988 6002 } else { 5989 // When leaving fullscreen mode, we need to restore the 'x' scroll position5990 // before fullscreen.5991 // FIXME: We may need to respect 'y' position as well, because the web page always scrolls to5992 // the top when leaving fullscreen mode.5993 WebCore::IntPoint scrollPosition = m_mainFrame->view()->scrollPosition();5994 m_mainFrame->view()->setScrollPosition(5995 WebCore::IntPoint(m_xScrollOffsetBeforeFullScreen, scrollPosition.y()));5996 m_xScrollOffsetBeforeFullScreen = -1;5997 5998 if (m_scaleBeforeFullScreen > 0) {5999 // Restore the scale when leaving fullscreen. We can't use TransformationMatrix::scale(double) here, as it6000 // will multiply the scale rather than set the scale.6001 // FIXME: We can refactor this into setCurrentScale(double) if it is useful in the future.6002 m_transformationMatrix->setM11(m_scaleBeforeFullScreen);6003 m_transformationMatrix->setM22(m_scaleBeforeFullScreen);6004 m_scaleBeforeFullScreen = -1.0;6005 }6006 6007 6003 // This is where we would restore the browser's chrome 6008 6004 // if hidden above. -
trunk/Source/WebKit/blackberry/Api/WebPage_p.h
r129419 r129909 524 524 #if ENABLE(VIDEO) 525 525 double m_scaleBeforeFullScreen; 526 int m_xScrollOffsetBeforeFullScreen;526 WebCore::IntPoint m_scrollOffsetBeforeFullScreen; 527 527 #endif 528 528 bool m_isTogglingFullScreenState; -
trunk/Source/WebKit/blackberry/ChangeLog
r129903 r129909 1 2012-09-28 Antonio Gomes <agomes@rim.com> 2 3 [BlackBerry] Exiting fullscreen does not set the correct scroll position 4 https://bugs.webkit.org/show_bug.cgi?id=97917 5 PR #212920 6 7 Reviewed by Yong Li. 8 Internally reviewed by Jacky Jiang. 9 10 Restore the zoom level and scroll position at the time when know 11 the fullscreen exit routine has ended (i.e. in ::setViewportSize 12 instead of ::exitFullScreenForElement). 13 14 Also patch caches now the scroll position instead of only the 15 "x scroll position. 16 17 * Api/WebPage.cpp: 18 (BlackBerry::WebKit::WebPagePrivate::WebPagePrivate): 19 (BlackBerry::WebKit::WebPagePrivate::setViewportSize): 20 (BlackBerry::WebKit::WebPagePrivate::enterFullScreenForElement): 21 (BlackBerry::WebKit::WebPagePrivate::exitFullScreenForElement): 22 * Api/WebPage_p.h: 23 (WebPagePrivate): 24 1 25 2012-09-28 Kent Tamura <tkent@chromium.org> 2 26
Note:
See TracChangeset
for help on using the changeset viewer.