Bug 959570 - Don't draw rounded corners and a highlight line in fullscreen mode. r=smichaud

This commit is contained in:
Markus Stange 2014-01-17 11:06:15 +01:00
parent 3cfdf7a5d6
commit 01d6616d38
2 changed files with 10 additions and 3 deletions

View File

@ -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

View File

@ -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);