mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-12 04:45:45 +00:00
46694e7e28
FrameLayerBuilder requires the the (frame,per-frame-key) for each display item is unique. It only enforces this in certain situations though, so there's cases where we've gotten away without this. Retained display lists introduces more situations where we rely on this, so I've found a few. MathML nsDisplayNotation and nsDisplayMathMLBar are the two fixed by this patch.
58 lines
1.6 KiB
C++
58 lines
1.6 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "nsMathMLmsqrtFrame.h"
|
|
#include "mozilla/gfx/2D.h"
|
|
|
|
//
|
|
// <msqrt> -- form a radical - implementation
|
|
//
|
|
|
|
nsIFrame*
|
|
NS_NewMathMLmsqrtFrame(nsIPresShell* aPresShell, nsStyleContext* aContext)
|
|
{
|
|
return new (aPresShell) nsMathMLmsqrtFrame(aContext);
|
|
}
|
|
|
|
NS_IMPL_FRAMEARENA_HELPERS(nsMathMLmsqrtFrame)
|
|
|
|
nsMathMLmsqrtFrame::nsMathMLmsqrtFrame(nsStyleContext* aContext) :
|
|
nsMathMLmencloseFrame(aContext, kClassID)
|
|
{
|
|
}
|
|
|
|
nsMathMLmsqrtFrame::~nsMathMLmsqrtFrame()
|
|
{
|
|
}
|
|
|
|
void
|
|
nsMathMLmsqrtFrame::Init(nsIContent* aContent,
|
|
nsContainerFrame* aParent,
|
|
nsIFrame* aPrevInFlow)
|
|
{
|
|
nsMathMLContainerFrame::Init(aContent, aParent, aPrevInFlow);
|
|
AllocateMathMLChar(NOTATION_RADICAL);
|
|
mNotationsToDraw += NOTATION_RADICAL;
|
|
}
|
|
|
|
NS_IMETHODIMP
|
|
nsMathMLmsqrtFrame::InheritAutomaticData(nsIFrame* aParent)
|
|
{
|
|
nsMathMLContainerFrame::InheritAutomaticData(aParent);
|
|
|
|
mPresentationData.flags |= NS_MATHML_STRETCH_ALL_CHILDREN_VERTICALLY;
|
|
|
|
return NS_OK;
|
|
}
|
|
|
|
nsresult
|
|
nsMathMLmsqrtFrame::AttributeChanged(int32_t aNameSpaceID,
|
|
nsIAtom* aAttribute,
|
|
int32_t aModType)
|
|
{
|
|
return nsMathMLContainerFrame::
|
|
AttributeChanged(aNameSpaceID, aAttribute, aModType);
|
|
}
|