diff options
author | Matt A. Tobin <email@mattatobin.com> | 2020-04-17 06:41:41 -0400 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2020-04-17 06:41:41 -0400 |
commit | 96dfc63bc583454fb895c7a23f685995f5410388 (patch) | |
tree | 0acc6ed7feed9267c63e7d388a4ef24c015af467 /layout | |
parent | ed7faf3fde0000b139414648269d2ff82846bac1 (diff) | |
download | uxp-96dfc63bc583454fb895c7a23f685995f5410388.tar.gz |
Bug 1411754 - Rename PresShell::DestroyFramesFor to DestroyFramesForAndRestyle
Tag #1375
Diffstat (limited to 'layout')
-rw-r--r-- | layout/base/nsIPresShell.h | 2 | ||||
-rw-r--r-- | layout/base/nsPresShell.cpp | 14 | ||||
-rw-r--r-- | layout/base/nsPresShell.h | 2 |
3 files changed, 10 insertions, 8 deletions
diff --git a/layout/base/nsIPresShell.h b/layout/base/nsIPresShell.h index 2df75489f8..5f83b9c153 100644 --- a/layout/base/nsIPresShell.h +++ b/layout/base/nsIPresShell.h @@ -544,7 +544,7 @@ public: * * Note that this may destroy frames for an ancestor instead. */ - virtual void DestroyFramesFor(mozilla::dom::Element* aElement) = 0; + virtual void DestroyFramesForAndRestyle(mozilla::dom::Element* aElement) = 0; /** * Recreates the frames for a node diff --git a/layout/base/nsPresShell.cpp b/layout/base/nsPresShell.cpp index f861e7b06e..bd5125637f 100644 --- a/layout/base/nsPresShell.cpp +++ b/layout/base/nsPresShell.cpp @@ -2828,7 +2828,7 @@ PresShell::CancelAllPendingReflows() } void -PresShell::DestroyFramesFor(Element* aElement) +PresShell::DestroyFramesForAndRestyle(Element* aElement) { MOZ_ASSERT(aElement); NS_ENSURE_TRUE_VOID(mPresContext); @@ -2847,13 +2847,15 @@ PresShell::DestroyFramesFor(Element* aElement) fc->DestroyFramesFor(aElement, &didReconstruct); fc->EndUpdate(); - // XXXmats doesn't frame state need to be restored in this case? - if (!didReconstruct) { - PostRecreateFramesFor(aElement); - } + auto changeHint = didReconstruct + ? nsChangeHint(0) + : nsChangeHint_ReconstructFrame; + // NOTE(emilio): eRestyle_Subtree is needed to force also a full subtree + // restyle for the content (in Stylo, where the existence of frames != the + // existence of styles). mPresContext->RestyleManager()->PostRestyleEvent( - aElement, eRestyle_Subtree, nsChangeHint(0)); + aElement, eRestyle_Subtree, changeHint); --mChangeNestCount; } diff --git a/layout/base/nsPresShell.h b/layout/base/nsPresShell.h index a0d2ea7530..628e613c88 100644 --- a/layout/base/nsPresShell.h +++ b/layout/base/nsPresShell.h @@ -139,7 +139,7 @@ public: virtual bool IsSafeToFlush() const override; virtual void FlushPendingNotifications(mozFlushType aType) override; virtual void FlushPendingNotifications(mozilla::ChangesToFlush aType) override; - virtual void DestroyFramesFor(mozilla::dom::Element* aElement) override; + virtual void DestroyFramesForAndRestyle(mozilla::dom::Element* aElement) override; /** * Recreates the frames for a node |