diff --git a/widget/cocoa/nsChildView.h b/widget/cocoa/nsChildView.h index b9808c4ed1d..3f4f6ab623a 100644 --- a/widget/cocoa/nsChildView.h +++ b/widget/cocoa/nsChildView.h @@ -185,6 +185,10 @@ enum { }; typedef NSUInteger NSEventPhase; +enum { + NSFullScreenWindowMask = 1 << 14 +}; + @interface NSWindow (LionWindowFeatures) - (NSRect)convertRectToScreen:(NSRect)aRect; @end @@ -681,6 +685,7 @@ protected: bool mHasRoundedBottomCorners; int mDevPixelCornerRadius; bool mIsCoveringTitlebar; + bool mIsFullscreen; nsIntRect mTitlebarRect; // The area of mTitlebarCGContext that needs to be redrawn during the next diff --git a/widget/cocoa/nsChildView.mm b/widget/cocoa/nsChildView.mm index aac79a39ec7..d87a4e133b5 100644 --- a/widget/cocoa/nsChildView.mm +++ b/widget/cocoa/nsChildView.mm @@ -376,6 +376,7 @@ nsChildView::nsChildView() : nsBaseWidget() , mShowsResizeIndicator(false) , mHasRoundedBottomCorners(false) , mIsCoveringTitlebar(false) +, mIsFullscreen(false) , mTitlebarCGContext(nullptr) , mBackingScaleFactor(0.0) , mVisible(false) @@ -2071,6 +2072,7 @@ nsChildView::PrepareWindowEffects() CGFloat cornerRadius = [(ChildView*)mView cornerRadius]; mDevPixelCornerRadius = cornerRadius * BackingScaleFactor(); mIsCoveringTitlebar = [(ChildView*)mView isCoveringTitlebar]; + mIsFullscreen = ([[mView window] styleMask] & NSFullScreenWindowMask) != 0; if (mIsCoveringTitlebar) { mTitlebarRect = RectContainingTitlebarControls(); UpdateTitlebarCGContext(); @@ -2375,7 +2377,7 @@ void nsChildView::MaybeDrawTitlebar(GLManager* aManager, const nsIntRect& aRect) { MutexAutoLock lock(mEffectsLock); - if (!mIsCoveringTitlebar) { + if (!mIsCoveringTitlebar || mIsFullscreen) { return; } @@ -2428,13 +2430,13 @@ nsChildView::MaybeDrawRoundedCorners(GLManager* aManager, const nsIntRect& aRect gfx3DMatrix flipX = gfx3DMatrix::ScalingMatrix(-1, 1, 1); gfx3DMatrix flipY = gfx3DMatrix::ScalingMatrix(1, -1, 1); - if (mIsCoveringTitlebar) { + if (mIsCoveringTitlebar && !mIsFullscreen) { // Mask the top corners. mCornerMaskImage->Draw(aManager, aRect.TopLeft()); mCornerMaskImage->Draw(aManager, aRect.TopRight(), flipX); } - if (mHasRoundedBottomCorners) { + if (mHasRoundedBottomCorners && !mIsFullscreen) { // Mask the bottom corners. mCornerMaskImage->Draw(aManager, aRect.BottomLeft(), flipY); mCornerMaskImage->Draw(aManager, aRect.BottomRight(), flipY * flipX);