mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-12 21:05:36 +00:00
Bug 479655 part 6. Add a private AddPendingRestyle API that allows removing restyle hints, as well as adding them. r=dbaron
This commit is contained in:
parent
ef0bbab82b
commit
9fd308fab4
@ -84,8 +84,10 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Add a restyle for the given element to the tracker.
|
* Add a restyle for the given element to the tracker.
|
||||||
*/
|
*/
|
||||||
inline void AddPendingRestyle(Element* aElement, nsRestyleHint aRestyleHint,
|
void AddPendingRestyle(Element* aElement, nsRestyleHint aRestyleHint,
|
||||||
nsChangeHint aMinChangeHint);
|
nsChangeHint aMinChangeHint) {
|
||||||
|
AddPendingRestyle(aElement, aRestyleHint, nsRestyleHint(0), aMinChangeHint);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Process the restyles we've been tracking.
|
* Process the restyles we've been tracking.
|
||||||
@ -102,6 +104,15 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
/**
|
||||||
|
* Add a restyle for the given element to the tracker and remove the
|
||||||
|
* given bits from the existing restyle hint for the element, if
|
||||||
|
* there is one.
|
||||||
|
*/
|
||||||
|
inline void AddPendingRestyle(Element* aElement, nsRestyleHint aRestyleHint,
|
||||||
|
nsRestyleHint aRestyleHintToRemove,
|
||||||
|
nsChangeHint aMinChangeHint);
|
||||||
|
|
||||||
// Handle a single mPendingRestyles entry.
|
// Handle a single mPendingRestyles entry.
|
||||||
inline void ProcessOneRestyle(Element* aElement,
|
inline void ProcessOneRestyle(Element* aElement,
|
||||||
nsRestyleHint aRestyleHint,
|
nsRestyleHint aRestyleHint,
|
||||||
@ -118,6 +129,7 @@ private:
|
|||||||
|
|
||||||
inline void RestyleTracker::AddPendingRestyle(Element* aElement,
|
inline void RestyleTracker::AddPendingRestyle(Element* aElement,
|
||||||
nsRestyleHint aRestyleHint,
|
nsRestyleHint aRestyleHint,
|
||||||
|
nsRestyleHint aRestyleHintToRemove,
|
||||||
nsChangeHint aMinChangeHint)
|
nsChangeHint aMinChangeHint)
|
||||||
{
|
{
|
||||||
RestyleData existingData;
|
RestyleData existingData;
|
||||||
@ -127,7 +139,8 @@ inline void RestyleTracker::AddPendingRestyle(Element* aElement,
|
|||||||
mPendingRestyles.Get(aElement, &existingData);
|
mPendingRestyles.Get(aElement, &existingData);
|
||||||
|
|
||||||
existingData.mRestyleHint =
|
existingData.mRestyleHint =
|
||||||
nsRestyleHint(existingData.mRestyleHint | aRestyleHint);
|
nsRestyleHint((existingData.mRestyleHint | aRestyleHint) &
|
||||||
|
~aRestyleHintToRemove);
|
||||||
NS_UpdateHint(existingData.mChangeHint, aMinChangeHint);
|
NS_UpdateHint(existingData.mChangeHint, aMinChangeHint);
|
||||||
|
|
||||||
mPendingRestyles.Put(aElement, existingData);
|
mPendingRestyles.Put(aElement, existingData);
|
||||||
|
Loading…
Reference in New Issue
Block a user