diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:35:49 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:35:49 +0000 |
commit | d8bbc7858622b6d9c278469aab701ca0b609cddf (patch) | |
tree | eff41dc61d9f714852212739e6b3738b82a2af87 /widget/cocoa/VibrancyManager.mm | |
parent | Releasing progress-linux version 125.0.3-1~progress7.99u1. (diff) | |
download | firefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.tar.xz firefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.zip |
Merging upstream version 126.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'widget/cocoa/VibrancyManager.mm')
-rw-r--r-- | widget/cocoa/VibrancyManager.mm | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/widget/cocoa/VibrancyManager.mm b/widget/cocoa/VibrancyManager.mm index e9cfcc3be0..6062acb931 100644 --- a/widget/cocoa/VibrancyManager.mm +++ b/widget/cocoa/VibrancyManager.mm @@ -9,6 +9,7 @@ #import <objc/message.h> #include "nsChildView.h" +#include "mozilla/StaticPrefs_widget.h" using namespace mozilla; @@ -30,18 +31,34 @@ static NSVisualEffectState VisualEffectStateForVibrancyType( // Tooltip and menu windows are never "key", so we need to tell the // vibrancy effect to look active regardless of window state. return NSVisualEffectStateActive; - default: - return NSVisualEffectStateFollowsWindowActiveState; + case VibrancyType::TITLEBAR: + break; } + return NSVisualEffectStateFollowsWindowActiveState; } static NSVisualEffectMaterial VisualEffectMaterialForVibrancyType( - VibrancyType aType, BOOL* aOutIsEmphasized) { + VibrancyType aType) { switch (aType) { case VibrancyType::TOOLTIP: return (NSVisualEffectMaterial)NSVisualEffectMaterialToolTip; case VibrancyType::MENU: return NSVisualEffectMaterialMenu; + case VibrancyType::TITLEBAR: + return NSVisualEffectMaterialTitlebar; + } +} + +static NSVisualEffectBlendingMode VisualEffectBlendingModeForVibrancyType( + VibrancyType aType) { + switch (aType) { + case VibrancyType::TOOLTIP: + case VibrancyType::MENU: + return NSVisualEffectBlendingModeBehindWindow; + case VibrancyType::TITLEBAR: + return StaticPrefs::widget_macos_titlebar_blend_mode_behind_window() + ? NSVisualEffectBlendingModeBehindWindow + : NSVisualEffectBlendingModeWithinWindow; } } @@ -53,11 +70,9 @@ static NSVisualEffectMaterial VisualEffectMaterialForVibrancyType( self.appearance = nil; self.state = VisualEffectStateForVibrancyType(mType); - - BOOL isEmphasized = NO; - self.material = VisualEffectMaterialForVibrancyType(mType, &isEmphasized); - self.emphasized = isEmphasized; - + self.material = VisualEffectMaterialForVibrancyType(mType); + self.blendingMode = VisualEffectBlendingModeForVibrancyType(mType); + self.emphasized = NO; return self; } @@ -89,7 +104,7 @@ bool VibrancyManager::UpdateVibrantRegion( } auto& vr = *mVibrantRegions.GetOrInsertNew(uint32_t(aType)); return vr.UpdateRegion(aRegion, mCoordinateConverter, mContainerView, ^() { - return this->CreateEffectView(aType); + return CreateEffectView(aType); }); } |