Commit 54b4eba0 authored by sullivan@apple.com's avatar sullivan@apple.com
Browse files

Dan Bernstein came up with this fix while we debugged it. I just typed.

Reviewed by Antti Koivisto.

https://bugs.webkit.org/show_bug.cgi?id=54532
On platforms without platformWidgets, going Back to a scrolled page 
draws at the top-left before drawing at the restored scroll position
        
<rdar://problem/8998838>
        
* page/FrameView.cpp:
(WebCore::FrameView::performPostLayoutTasks):
Don't send the didFirstLayout and didFirstVisuallyNonEmptyLayout callbacks
for nested layouts. Doing so was causing ScrollView::setScrollPosition()
to short-circuit.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@78687 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent e6d55a7f
2011-02-15 John Sullivan <sullivan@apple.com>
Reviewed by Antti Koivisto.
Dan Bernstein came up with this fix while we debugged it. I just typed.
https://bugs.webkit.org/show_bug.cgi?id=54532
On platforms without platformWidgets, going Back to a scrolled page
draws at the top-left before drawing at the restored scroll position
<rdar://problem/8998838>
* page/FrameView.cpp:
(WebCore::FrameView::performPostLayoutTasks):
Don't send the didFirstLayout and didFirstVisuallyNonEmptyLayout callbacks
for nested layouts. Doing so was causing ScrollView::setScrollPosition()
to short-circuit.
2011-02-15 Csaba Osztrogonác <ossy@webkit.org>
 
Unreviewed.
......@@ -1863,14 +1863,16 @@ void FrameView::performPostLayoutTasks()
m_frame->selection()->setCaretRectNeedsUpdate();
m_frame->selection()->updateAppearance();
if (m_firstLayoutCallbackPending) {
m_firstLayoutCallbackPending = false;
m_frame->loader()->didFirstLayout();
}
if (m_isVisuallyNonEmpty && m_firstVisuallyNonEmptyLayoutCallbackPending) {
m_firstVisuallyNonEmptyLayoutCallbackPending = false;
m_frame->loader()->didFirstVisuallyNonEmptyLayout();
if (m_nestedLayoutCount <= 1) {
if (m_firstLayoutCallbackPending) {
m_firstLayoutCallbackPending = false;
m_frame->loader()->didFirstLayout();
}
if (m_isVisuallyNonEmpty && m_firstVisuallyNonEmptyLayoutCallbackPending) {
m_firstVisuallyNonEmptyLayoutCallbackPending = false;
m_frame->loader()->didFirstVisuallyNonEmptyLayout();
}
}
RenderView* root = m_frame->contentRenderer();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment