diff --git a/App/Browser View/BrowserView.swift b/App/Browser View/BrowserView.swift index 609560c..6a5efb1 100644 --- a/App/Browser View/BrowserView.swift +++ b/App/Browser View/BrowserView.swift @@ -149,6 +149,10 @@ class BrowserView: UIView autocompleteView.layer.cornerRadius = 8.0 autocompleteView.layer.masksToBounds = true + let shadowPath = UIBezierPath(roundedRect: autocompleteView.bounds, + cornerRadius: autocompleteView.layer.cornerRadius) + autocompleteView.layer.shadowPath = shadowPath.cgPath + if let toolbarView = toolbarView, let urlBar = toolbarView.urlBar { let urlFrame = self.convert(urlBar.frame, from: urlBar.superview) autocompleteView.frame = CGRect( @@ -158,6 +162,9 @@ class BrowserView: UIView height: bounds.height / 2.5 ) } + } else { + autocompleteView.layer.cornerRadius = 0.0 + autocompleteView.layer.shadowOpacity = 0.0 } } diff --git a/App/Common UI/ReliefButton.swift b/App/Common UI/ReliefButton.swift index b5274c6..00e1a7e 100644 --- a/App/Common UI/ReliefButton.swift +++ b/App/Common UI/ReliefButton.swift @@ -65,6 +65,8 @@ class ReliefButton: UIButton backgroundView.layer.masksToBounds = true backgroundView.layer.borderWidth = Self.borderWidth backgroundView.layer.cornerCurve = .continuous + backgroundView.layer.shouldRasterize = true + backgroundView.layer.rasterizationScale = UIScreen.main.scale addSubview(backgroundView) traitCollectionDidChange(nil) @@ -151,5 +153,8 @@ class ReliefButton: UIButton } shadowView.frame = backgroundView.frame + + let shadowPath = UIBezierPath(roundedRect: shadowView.bounds, cornerRadius: Self.cornerRadius) + shadowView.layer.shadowPath = shadowPath.cgPath } } diff --git a/App/Common UI/SegmentedReliefButton.swift b/App/Common UI/SegmentedReliefButton.swift index b17e79c..9fcd2aa 100644 --- a/App/Common UI/SegmentedReliefButton.swift +++ b/App/Common UI/SegmentedReliefButton.swift @@ -14,7 +14,6 @@ class SegmentedReliefButton: ReliefButton didSet { children.forEach { addSubview($0) }; setNeedsLayout() } } - private let backgroundMaskView = UIView(frame: .zero) private let backgroundsContainerView = UIView(frame: .zero) private var childrenHighlighObservations: [NSKeyValueObservation] = [] @@ -22,12 +21,10 @@ class SegmentedReliefButton: ReliefButton super.init() self.children = children - backgroundMaskView.backgroundColor = .black - backgroundMaskView.layer.masksToBounds = true - backgroundMaskView.layer.cornerRadius = Self.cornerRadius - Self.borderWidth - backgroundsContainerView.clipsToBounds = true - backgroundsContainerView.mask = backgroundMaskView + backgroundsContainerView.layer.cornerRadius = Self.cornerRadius - Self.borderWidth + + constrainedToSquare = false addSubview(backgroundsContainerView) } @@ -57,10 +54,7 @@ class SegmentedReliefButton: ReliefButton super.layoutSubviews() backgroundView.colors = [ .clear ] - backgroundView.frame = bounds - shadowView.frame = bounds - backgroundMaskView.frame = backgroundView.frame.insetBy(dx: 1.0, dy: 1.0) backgroundsContainerView.frame = backgroundView.frame childrenHighlighObservations.removeAll() diff --git a/App/Titlebar and URL Bar/ToolbarView.swift b/App/Titlebar and URL Bar/ToolbarView.swift index ec62cdc..7f4ee1e 100644 --- a/App/Titlebar and URL Bar/ToolbarView.swift +++ b/App/Titlebar and URL Bar/ToolbarView.swift @@ -47,6 +47,9 @@ class ToolbarView: UIView override func layoutSubviews() { super.layoutSubviews() + + let shadowPath = UIBezierPath(rect: bounds) + layer.shadowPath = shadowPath.cgPath backgroundView.frame = bounds diff --git a/App/Titlebar and URL Bar/URLBar.swift b/App/Titlebar and URL Bar/URLBar.swift index 8146dd8..30e4a52 100644 --- a/App/Titlebar and URL Bar/URLBar.swift +++ b/App/Titlebar and URL Bar/URLBar.swift @@ -41,6 +41,7 @@ class URLBar: ReliefButton super.init() backgroundColor = .clear + constrainedToSquare = false backgroundView.addSubview(progressIndicatorView)