Changeset 150011 in webkit
- Timestamp:
- May 13, 2013 7:55:38 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r150010 r150011 1 2013-05-13 Andreas Kling <akling@apple.com> 2 3 REGRESSION(r149287): FoldingText only shows me half of my text. 4 <http://webkit.org/b/115956> 5 <rdar://problem/13831099> 6 7 Reviewed by Antti Koivisto. 8 9 Check if the FrameView geometry changed post-layout, and send a resize event if needed. 10 This brings us closer to the original resize event behavior, with the exception that 11 setFrameRect() still fires an event right away if possible. This means we are still 12 guarded from FOUC's but frames that layout via [WebHTMLView layoutToMinimumPageWidth] 13 also get resize events like they used to. 14 15 No new tests, because I don't know how to test this. 16 17 * page/FrameView.h: 18 * page/FrameView.cpp: 19 (WebCore::FrameView::setFrameRect): 20 (WebCore::FrameView::performPostLayoutTasks): 21 (WebCore::FrameView::sendResizeEventIfNeeded): 22 23 Factor out the resize event logic from setFrameRect() so we can call it from both 24 there and performPostLayoutTasks(). sendResizeEventIfNeeded() only sends an event 25 if view geometry or zoom factor has changed since last time it was called. 26 1 27 2013-05-13 Antti Koivisto <antti@apple.com> 2 28 -
trunk/Source/WebCore/page/FrameView.cpp
r149980 r150011 486 486 } 487 487 488 if (renderView && !renderView->printing()) { 489 IntSize currentSize; 490 if (useFixedLayout() && !fixedLayoutSize().isEmpty() && delegatesScrolling()) 491 currentSize = fixedLayoutSize(); 492 else 493 currentSize = visibleContentRect(IncludeScrollbars).size(); 494 float currentZoomFactor = renderView->style()->zoom(); 495 bool resized = !m_firstLayout && (currentSize != m_lastViewportSize || currentZoomFactor != m_lastZoomFactor); 496 m_lastViewportSize = currentSize; 497 m_lastZoomFactor = currentZoomFactor; 498 if (resized) 499 dispatchResizeEvent(); 500 } 501 488 sendResizeEventIfNeeded(); 502 489 } 503 490 … … 2783 2770 2784 2771 m_actionScheduler->resume(); 2785 } 2786 2787 void FrameView::dispatchResizeEvent() 2772 2773 sendResizeEventIfNeeded(); 2774 } 2775 2776 void FrameView::sendResizeEventIfNeeded() 2788 2777 { 2789 2778 ASSERT(m_frame); 2790 2779 2780 RenderView* renderView = this->renderView(); 2781 if (!renderView || renderView->printing()) 2782 return; 2783 2791 2784 Page* page = m_frame->page(); 2785 IntSize currentSize; 2786 if (useFixedLayout() && !fixedLayoutSize().isEmpty() && delegatesScrolling()) 2787 currentSize = fixedLayoutSize(); 2788 else 2789 currentSize = visibleContentRect(IncludeScrollbars).size(); 2790 2791 float currentZoomFactor = renderView->style()->zoom(); 2792 bool shouldSendResizeEvent = !m_firstLayout && (currentSize != m_lastViewportSize || currentZoomFactor != m_lastZoomFactor); 2793 2794 m_lastViewportSize = currentSize; 2795 m_lastZoomFactor = currentZoomFactor; 2796 2797 if (!shouldSendResizeEvent) 2798 return; 2799 2792 2800 bool isMainFrame = page && page->mainFrame() == m_frame; 2793 2801 bool canSendResizeEventSynchronously = isMainFrame && !isInLayout(); -
trunk/Source/WebCore/page/FrameView.h
r149317 r150011 496 496 virtual void willRemoveScrollbar(Scrollbar*, ScrollbarOrientation) OVERRIDE; 497 497 498 void dispatchResizeEvent();498 void sendResizeEventIfNeeded(); 499 499 500 500 void updateScrollableAreaSet();
Note: See TracChangeset
for help on using the changeset viewer.