author | Morris Tseng <mtseng@mozilla.com> |
Wed, 29 Oct 2014 02:03:00 -0400 | |
changeset 212950 | c48116c4a5681e366db0679ebcdb8506fc93866b |
parent 212949 | 33dca6b21a8116ab5b6b6cf7202f2117970f26a6 |
child 212951 | 1acb63b9d6c6b1c456b2c1a2bd86c68543531428 |
push id | 27736 |
push user | ryanvm@gmail.com |
push date | Wed, 29 Oct 2014 20:49:13 +0000 |
treeherder | mozilla-central@80e18ff7c7b2 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | roc |
bugs | 1088559 |
milestone | 36.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
docshell/base/nsDocShell.cpp | file | annotate | diff | comparison | revisions | |
layout/base/SelectionCarets.cpp | file | annotate | diff | comparison | revisions |
--- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -3109,31 +3109,49 @@ nsDocShell::NotifyAsyncPanZoomStarted(co nsWeakPtr ref = iter.GetNext(); nsCOMPtr<nsIScrollObserver> obs = do_QueryReferent(ref); if (obs) { obs->AsyncPanZoomStarted(aScrollPos); } else { mScrollObservers.RemoveElement(ref); } } + + // Also notify child docshell + for (uint32_t i = 0; i < mChildList.Length(); ++i) { + nsCOMPtr<nsIDocShell> kid = do_QueryInterface(ChildAt(i)); + if (kid) { + nsDocShell* docShell = static_cast<nsDocShell*>(kid.get()); + docShell->NotifyAsyncPanZoomStarted(aScrollPos); + } + } } void nsDocShell::NotifyAsyncPanZoomStopped(const mozilla::CSSIntPoint aScrollPos) { nsTObserverArray<nsWeakPtr>::ForwardIterator iter(mScrollObservers); while (iter.HasMore()) { nsWeakPtr ref = iter.GetNext(); nsCOMPtr<nsIScrollObserver> obs = do_QueryReferent(ref); if (obs) { obs->AsyncPanZoomStopped(aScrollPos); } else { mScrollObservers.RemoveElement(ref); } } + + // Also notify child docshell + for (uint32_t i = 0; i < mChildList.Length(); ++i) { + nsCOMPtr<nsIDocShell> kid = do_QueryInterface(ChildAt(i)); + if (kid) { + nsDocShell* docShell = static_cast<nsDocShell*>(kid.get()); + docShell->NotifyAsyncPanZoomStopped(aScrollPos); + } + } } NS_IMETHODIMP nsDocShell::NotifyScrollObservers() { nsTObserverArray<nsWeakPtr>::ForwardIterator iter(mScrollObservers); while (iter.HasMore()) { nsWeakPtr ref = iter.GetNext();
--- a/layout/base/SelectionCarets.cpp +++ b/layout/base/SelectionCarets.cpp @@ -940,18 +940,18 @@ SelectionCarets::GetFrameSelection() return focusFrame->GetFrameSelection(); } else { return mPresShell->FrameSelection(); } } nsresult SelectionCarets::NotifySelectionChanged(nsIDOMDocument* aDoc, - nsISelection* aSel, - int16_t aReason) + nsISelection* aSel, + int16_t aReason) { SELECTIONCARETS_LOG("aSel (%p), Reason=%d", aSel, aReason); if (!aReason || (aReason & (nsISelectionListener::DRAG_REASON | nsISelectionListener::KEYPRESS_REASON | nsISelectionListener::MOUSEDOWN_REASON))) { SetVisibility(false); } else { UpdateSelectionCarets();