예제 #1
0
        private bool DoTransferFromBlock(nsCSSExpandedDataBlock aFromBlock, CssProperty aPropID,
                                         bool aIsImportant, bool aOverrideImportant, bool aMustCallValueAppended, CssDeclaration aDeclaration)
        {
            bool changed = false;

            if (aIsImportant)
            {
                if (!mPropertiesImportant.HasProperty(aPropID))
                {
                    changed = true;
                }
                mPropertiesImportant.AddProperty(aPropID);
            }
            else
            {
                if (mPropertiesImportant.HasProperty(aPropID))
                {
                    if (!aOverrideImportant)
                    {
                        aFromBlock.ClearLonghandProperty(aPropID);
                        return(false);
                    }
                    changed = true;
                    mPropertiesImportant.RemoveProperty(aPropID);
                }
            }

            if (aMustCallValueAppended || !mPropertiesSet.HasProperty(aPropID))
            {
                aDeclaration.ValueAppended(aPropID);
            }

            mPropertiesSet.AddProperty(aPropID);
            aFromBlock.mPropertiesSet.RemoveProperty(aPropID);
            changed |= MoveValue(ref aFromBlock.mValues[(int)aPropID], ref mValues[(int)aPropID]);

            return(changed);
        }
예제 #2
0
        private bool DoTransferFromBlock(nsCSSExpandedDataBlock aFromBlock, CssProperty aPropID,
            bool aIsImportant, bool aOverrideImportant, bool aMustCallValueAppended, CssDeclaration aDeclaration)
        {
            bool changed = false;
            if (aIsImportant) {
                if (!mPropertiesImportant.HasProperty(aPropID))
                    changed = true;
                mPropertiesImportant.AddProperty(aPropID);
            }
            else {
                if (mPropertiesImportant.HasProperty(aPropID)) {
                    if (!aOverrideImportant) {
                        aFromBlock.ClearLonghandProperty(aPropID);
                        return false;
                    }
                    changed = true;
                    mPropertiesImportant.RemoveProperty(aPropID);
                }
            }

            if (aMustCallValueAppended || !mPropertiesSet.HasProperty(aPropID)) {
                aDeclaration.ValueAppended(aPropID);
            }

            mPropertiesSet.AddProperty(aPropID);
            aFromBlock.mPropertiesSet.RemoveProperty(aPropID);
            changed |= MoveValue(ref aFromBlock.mValues[(int)aPropID], ref mValues[(int)aPropID]);

            return changed;
        }