Browse Source

fix: only bezel frameless windows (#23809)

Co-authored-by: Shelley Vohr <[email protected]>
trop[bot] 4 years ago
parent
commit
4fe7c9ac24
1 changed files with 21 additions and 19 deletions
  1. 21 19
      shell/browser/native_window_mac.mm

+ 21 - 19
shell/browser/native_window_mac.mm

@@ -1454,25 +1454,27 @@ void NativeWindowMac::SetVibrancy(const std::string& type) {
     [effect_view setState:NSVisualEffectStateActive];
 
     // Make frameless Vibrant windows have rounded corners.
-    CGFloat radius = 5.0f;  // default corner radius
-    CGFloat dimension = 2 * radius + 1;
-    NSSize size = NSMakeSize(dimension, dimension);
-    NSImage* maskImage = [NSImage imageWithSize:size
-                                        flipped:NO
-                                 drawingHandler:^BOOL(NSRect rect) {
-                                   NSBezierPath* bezierPath = [NSBezierPath
-                                       bezierPathWithRoundedRect:rect
-                                                         xRadius:radius
-                                                         yRadius:radius];
-                                   [[NSColor blackColor] set];
-                                   [bezierPath fill];
-                                   return YES;
-                                 }];
-    [maskImage setCapInsets:NSEdgeInsetsMake(radius, radius, radius, radius)];
-    [maskImage setResizingMode:NSImageResizingModeStretch];
-
-    [effect_view setMaskImage:maskImage];
-    [window_ setCornerMask:maskImage];
+    if (!has_frame()) {
+      CGFloat radius = 5.0f;  // default corner radius
+      CGFloat dimension = 2 * radius + 1;
+      NSSize size = NSMakeSize(dimension, dimension);
+      NSImage* maskImage = [NSImage imageWithSize:size
+                                          flipped:NO
+                                   drawingHandler:^BOOL(NSRect rect) {
+                                     NSBezierPath* bezierPath = [NSBezierPath
+                                         bezierPathWithRoundedRect:rect
+                                                           xRadius:radius
+                                                           yRadius:radius];
+                                     [[NSColor blackColor] set];
+                                     [bezierPath fill];
+                                     return YES;
+                                   }];
+      [maskImage setCapInsets:NSEdgeInsetsMake(radius, radius, radius, radius)];
+      [maskImage setResizingMode:NSImageResizingModeStretch];
+
+      [effect_view setMaskImage:maskImage];
+      [window_ setCornerMask:maskImage];
+    }
 
     [[window_ contentView] addSubview:effect_view
                            positioned:NSWindowBelow