Skip to content

Commit

Permalink
fix: potential crash when setting vibrancy
Browse files Browse the repository at this point in the history
  • Loading branch information
codebytere committed Jun 14, 2021
1 parent 34a4e26 commit bf27332
Showing 1 changed file with 19 additions and 22 deletions.
41 changes: 19 additions & 22 deletions shell/browser/native_window_mac.mm
Original file line number Diff line number Diff line change
Expand Up @@ -1394,61 +1394,58 @@ void ViewDidMoveToSuperview(NSView* self, SEL _cmd) {
if (type == "appearance-based") {
EmitWarning(env, "NSVisualEffectMaterialAppearanceBased" + dep_warn,
"electron");
vibrancyType = NSVisualEffectMaterialAppearanceBased;
[effect_view setMaterial:NSVisualEffectMaterialAppearanceBased];
} else if (type == "light") {
EmitWarning(env, "NSVisualEffectMaterialLight" + dep_warn, "electron");
vibrancyType = NSVisualEffectMaterialLight;
[effect_view setMaterial:NSVisualEffectMaterialLight];
} else if (type == "dark") {
EmitWarning(env, "NSVisualEffectMaterialDark" + dep_warn, "electron");
vibrancyType = NSVisualEffectMaterialDark;
[effect_view setMaterial:NSVisualEffectMaterialDark];
} else if (type == "titlebar") {
vibrancyType = NSVisualEffectMaterialTitlebar;
[effect_view setMaterial:NSVisualEffectMaterialTitlebar];
}

if (@available(macOS 10.11, *)) {
if (type == "selection") {
vibrancyType = NSVisualEffectMaterialSelection;
[effect_view setMaterial:NSVisualEffectMaterialSelection];
} else if (type == "menu") {
vibrancyType = NSVisualEffectMaterialMenu;
[effect_view setMaterial:NSVisualEffectMaterialMenu];
} else if (type == "popover") {
vibrancyType = NSVisualEffectMaterialPopover;
[effect_view setMaterial:NSVisualEffectMaterialPopover];
} else if (type == "sidebar") {
vibrancyType = NSVisualEffectMaterialSidebar;
[effect_view setMaterial:NSVisualEffectMaterialSidebar];
} else if (type == "medium-light") {
EmitWarning(env, "NSVisualEffectMaterialMediumLight" + dep_warn,
"electron");
vibrancyType = NSVisualEffectMaterialMediumLight;
[effect_view setMaterial:NSVisualEffectMaterialMediumLight];
} else if (type == "ultra-dark") {
EmitWarning(env, "NSVisualEffectMaterialUltraDark" + dep_warn,
"electron");
vibrancyType = NSVisualEffectMaterialUltraDark;
[effect_view setMaterial:NSVisualEffectMaterialUltraDark];
}
}

if (@available(macOS 10.14, *)) {
if (type == "header") {
vibrancyType = NSVisualEffectMaterialHeaderView;
[effect_view setMaterial:NSVisualEffectMaterialHeaderView];
} else if (type == "sheet") {
vibrancyType = NSVisualEffectMaterialSheet;
[effect_view setMaterial:NSVisualEffectMaterialSheet];
} else if (type == "window") {
vibrancyType = NSVisualEffectMaterialWindowBackground;
[effect_view setMaterial:NSVisualEffectMaterialWindowBackground];
} else if (type == "hud") {
vibrancyType = NSVisualEffectMaterialHUDWindow;
[effect_view setMaterial:NSVisualEffectMaterialHUDWindow];
} else if (type == "fullscreen-ui") {
vibrancyType = NSVisualEffectMaterialFullScreenUI;
[effect_view setMaterial:NSVisualEffectMaterialFullScreenUI];
} else if (type == "tooltip") {
vibrancyType = NSVisualEffectMaterialToolTip;
[effect_view setMaterial:NSVisualEffectMaterialToolTip];
} else if (type == "content") {
vibrancyType = NSVisualEffectMaterialContentBackground;
[effect_view setMaterial:NSVisualEffectMaterialContentBackground];
} else if (type == "under-window") {
vibrancyType = NSVisualEffectMaterialUnderWindowBackground;
[effect_view setMaterial:NSVisualEffectMaterialUnderWindowBackground];
} else if (type == "under-page") {
vibrancyType = NSVisualEffectMaterialUnderPageBackground;
[effect_view setMaterial:NSVisualEffectMaterialUnderPageBackground];
}
}

if (vibrancyType)
[effect_view setMaterial:vibrancyType];
}

void NativeWindowMac::SetWindowButtonVisibility(bool visible) {
Expand Down

0 comments on commit bf27332

Please sign in to comment.