зеркало из https://github.com/mozilla/gecko-dev.git
Making sure the pseudo stuff gets handled for the XP menu object.
This commit is contained in:
Родитель
6ecedfdec8
Коммит
28558f35bc
|
@ -3058,25 +3058,30 @@ nsCSSFrameConstructor::ConstructXULFrame(nsIPresContext* aPresContext,
|
||||||
const nsStyleDisplay* display = (const nsStyleDisplay*)
|
const nsStyleDisplay* display = (const nsStyleDisplay*)
|
||||||
aStyleContext->GetStyleData(eStyleStruct_Display);
|
aStyleContext->GetStyleData(eStyleStruct_Display);
|
||||||
|
|
||||||
// Menus can scroll.
|
// Menus scroll.
|
||||||
if (IsScrollable(aPresContext, display)) {
|
// See if it's absolute positioned or fixed positioned
|
||||||
// See if it's absolute positioned or fixed positioned
|
if (NS_STYLE_POSITION_ABSOLUTE == position->mPosition) {
|
||||||
if (NS_STYLE_POSITION_ABSOLUTE == position->mPosition) {
|
isAbsolutelyPositioned = PR_TRUE;
|
||||||
isAbsolutelyPositioned = PR_TRUE;
|
} else if (NS_STYLE_POSITION_FIXED == position->mPosition) {
|
||||||
} else if (NS_STYLE_POSITION_FIXED == position->mPosition) {
|
isFixedPositioned = PR_TRUE;
|
||||||
isFixedPositioned = PR_TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create a scroll frame
|
|
||||||
nsIFrame* scrollFrame;
|
|
||||||
NS_NewScrollFrame(&scrollFrame);
|
|
||||||
|
|
||||||
// Initialize it (note we don't honor absolute or fixed, since this is
|
|
||||||
// going to behave a lot like the GFX combo box).
|
|
||||||
InitializeScrollFrame(aPresContext, aState, scrollFrame, aContent, aParentFrame,
|
|
||||||
aStyleContext, newFrame, PR_FALSE, PR_FALSE, PR_TRUE);
|
|
||||||
frameHasBeenInitialized = PR_TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create a scroll frame
|
||||||
|
nsIFrame* scrollFrame;
|
||||||
|
NS_NewScrollFrame(&scrollFrame);
|
||||||
|
|
||||||
|
// Initialize it (note we don't honor absolute or fixed, since this is
|
||||||
|
// going to behave a lot like the GFX combo box).
|
||||||
|
// Resolve psuedo element style for the dropdown menu
|
||||||
|
nsCOMPtr<nsIStyleContext> menuStyle;
|
||||||
|
rv = aPresContext->ResolvePseudoStyleContextFor(aContent,
|
||||||
|
nsXULAtoms::dropDownMenuPseudo,
|
||||||
|
aStyleContext,
|
||||||
|
PR_FALSE,
|
||||||
|
getter_AddRefs(menuStyle));
|
||||||
|
InitializeScrollFrame(aPresContext, aState, scrollFrame, aContent, aParentFrame,
|
||||||
|
menuStyle, newFrame, PR_FALSE, PR_FALSE, PR_TRUE);
|
||||||
|
frameHasBeenInitialized = PR_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// BOX CONSTRUCTION
|
// BOX CONSTRUCTION
|
||||||
|
|
|
@ -3058,25 +3058,30 @@ nsCSSFrameConstructor::ConstructXULFrame(nsIPresContext* aPresContext,
|
||||||
const nsStyleDisplay* display = (const nsStyleDisplay*)
|
const nsStyleDisplay* display = (const nsStyleDisplay*)
|
||||||
aStyleContext->GetStyleData(eStyleStruct_Display);
|
aStyleContext->GetStyleData(eStyleStruct_Display);
|
||||||
|
|
||||||
// Menus can scroll.
|
// Menus scroll.
|
||||||
if (IsScrollable(aPresContext, display)) {
|
// See if it's absolute positioned or fixed positioned
|
||||||
// See if it's absolute positioned or fixed positioned
|
if (NS_STYLE_POSITION_ABSOLUTE == position->mPosition) {
|
||||||
if (NS_STYLE_POSITION_ABSOLUTE == position->mPosition) {
|
isAbsolutelyPositioned = PR_TRUE;
|
||||||
isAbsolutelyPositioned = PR_TRUE;
|
} else if (NS_STYLE_POSITION_FIXED == position->mPosition) {
|
||||||
} else if (NS_STYLE_POSITION_FIXED == position->mPosition) {
|
isFixedPositioned = PR_TRUE;
|
||||||
isFixedPositioned = PR_TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create a scroll frame
|
|
||||||
nsIFrame* scrollFrame;
|
|
||||||
NS_NewScrollFrame(&scrollFrame);
|
|
||||||
|
|
||||||
// Initialize it (note we don't honor absolute or fixed, since this is
|
|
||||||
// going to behave a lot like the GFX combo box).
|
|
||||||
InitializeScrollFrame(aPresContext, aState, scrollFrame, aContent, aParentFrame,
|
|
||||||
aStyleContext, newFrame, PR_FALSE, PR_FALSE, PR_TRUE);
|
|
||||||
frameHasBeenInitialized = PR_TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Create a scroll frame
|
||||||
|
nsIFrame* scrollFrame;
|
||||||
|
NS_NewScrollFrame(&scrollFrame);
|
||||||
|
|
||||||
|
// Initialize it (note we don't honor absolute or fixed, since this is
|
||||||
|
// going to behave a lot like the GFX combo box).
|
||||||
|
// Resolve psuedo element style for the dropdown menu
|
||||||
|
nsCOMPtr<nsIStyleContext> menuStyle;
|
||||||
|
rv = aPresContext->ResolvePseudoStyleContextFor(aContent,
|
||||||
|
nsXULAtoms::dropDownMenuPseudo,
|
||||||
|
aStyleContext,
|
||||||
|
PR_FALSE,
|
||||||
|
getter_AddRefs(menuStyle));
|
||||||
|
InitializeScrollFrame(aPresContext, aState, scrollFrame, aContent, aParentFrame,
|
||||||
|
menuStyle, newFrame, PR_FALSE, PR_FALSE, PR_TRUE);
|
||||||
|
frameHasBeenInitialized = PR_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// BOX CONSTRUCTION
|
// BOX CONSTRUCTION
|
||||||
|
|
Загрузка…
Ссылка в новой задаче