summaryrefslogtreecommitdiff
path: root/layout/xul/nsMenuPopupFrame.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'layout/xul/nsMenuPopupFrame.cpp')
-rw-r--r--layout/xul/nsMenuPopupFrame.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/layout/xul/nsMenuPopupFrame.cpp b/layout/xul/nsMenuPopupFrame.cpp
index 1d47652dcb..378d719d44 100644
--- a/layout/xul/nsMenuPopupFrame.cpp
+++ b/layout/xul/nsMenuPopupFrame.cpp
@@ -1502,8 +1502,17 @@ nsMenuPopupFrame::SetPopupPosition(nsIFrame* aAnchorFrame, bool aIsMove, bool aS
screenPoint.MoveBy(margin.left + offsetForContextMenu.x,
margin.top + offsetForContextMenu.y);
- // Screen positioned popups can be flipped vertically but never horizontally
+#ifdef XP_MACOSX
+ // OSX tooltips follow standard flip rule but other popups flip horizontally not vertically
+ if (mPopupType == ePopupTypeTooltip) {
+ vFlip = FlipStyle_Outside;
+ } else {
+ hFlip = FlipStyle_Outside;
+ }
+#else
+ // Other OS screen positioned popups can be flipped vertically but never horizontally
vFlip = FlipStyle_Outside;
+#endif // #ifdef XP_MACOSX
}
// If a panel is being moved or has flip="none", don't constrain or flip it. But always do this for