mirror of
https://github.com/maxgoedjen/secretive.git
synced 2026-07-03 11:11:42 +00:00
Fix macOS 27 UI issues (#814)
* Fix janky macOS 27 glass appearance. * Fix janky macOS 27 glass appearance on multiline view too
This commit is contained in:
@@ -163,8 +163,7 @@ fileprivate struct BackgroundViewModifier: ViewModifier {
|
|||||||
} else {
|
} else {
|
||||||
if #available(macOS 26.0, *) {
|
if #available(macOS 26.0, *) {
|
||||||
content
|
content
|
||||||
// Very thin opacity lets user hover anywhere over the view, glassEffect doesn't allow.
|
.contentShape(RoundedRectangle(cornerRadius: 15))
|
||||||
.background(.white.opacity(0.01), in: RoundedRectangle(cornerRadius: 15))
|
|
||||||
.glassEffect(.regular.tint(backgroundColor(interactionState: interactionState)), in: RoundedRectangle(cornerRadius: 15))
|
.glassEffect(.regular.tint(backgroundColor(interactionState: interactionState)), in: RoundedRectangle(cornerRadius: 15))
|
||||||
.mask(RoundedRectangle(cornerRadius: 15))
|
.mask(RoundedRectangle(cornerRadius: 15))
|
||||||
.shadow(color: .black.opacity(0.1), radius: 5)
|
.shadow(color: .black.opacity(0.1), radius: 5)
|
||||||
@@ -179,7 +178,12 @@ fileprivate struct BackgroundViewModifier: ViewModifier {
|
|||||||
func backgroundColor(interactionState: InteractionState) -> Color {
|
func backgroundColor(interactionState: InteractionState) -> Color {
|
||||||
guard appearsActive else { return Color.clear }
|
guard appearsActive else { return Color.clear }
|
||||||
if #available(macOS 26.0, *) {
|
if #available(macOS 26.0, *) {
|
||||||
let base = colorScheme == .dark ? Color(white: 0.2) : Color(white: 1)
|
let base: Color
|
||||||
|
if #available(macOS 27.0, *) {
|
||||||
|
base = .clear
|
||||||
|
} else {
|
||||||
|
base = colorScheme == .dark ? Color(white: 0.2) : Color(white: 1)
|
||||||
|
}
|
||||||
switch interactionState {
|
switch interactionState {
|
||||||
case .normal:
|
case .normal:
|
||||||
return base
|
return base
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ struct MultilineInfoView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.safeAreaPadding(20)
|
.safeAreaPadding(20)
|
||||||
._background(interactionState: interactionStateIndex == item.offset ? interactionState : .normal, cornerRadius: 0)
|
|
||||||
.onHover { hovering in
|
.onHover { hovering in
|
||||||
withAnimation {
|
withAnimation {
|
||||||
guard item.element.action != nil else { return }
|
guard item.element.action != nil else { return }
|
||||||
@@ -117,8 +116,7 @@ fileprivate struct BackgroundViewModifier: ViewModifier {
|
|||||||
func body(content: Content) -> some View {
|
func body(content: Content) -> some View {
|
||||||
if #available(macOS 26.0, *) {
|
if #available(macOS 26.0, *) {
|
||||||
content
|
content
|
||||||
// Very thin opacity lets user hover anywhere over the view, glassEffect doesn't allow.
|
.contentShape(RoundedRectangle(cornerRadius: cornerRadius))
|
||||||
.background(.white.opacity(0.01), in: RoundedRectangle(cornerRadius: 15))
|
|
||||||
.glassEffect(.regular.tint(backgroundColor(interactionState: interactionState)), in: RoundedRectangle(cornerRadius: cornerRadius))
|
.glassEffect(.regular.tint(backgroundColor(interactionState: interactionState)), in: RoundedRectangle(cornerRadius: cornerRadius))
|
||||||
.mask(RoundedRectangle(cornerRadius: cornerRadius))
|
.mask(RoundedRectangle(cornerRadius: cornerRadius))
|
||||||
.shadow(color: .black.opacity(0.1), radius: 5)
|
.shadow(color: .black.opacity(0.1), radius: 5)
|
||||||
@@ -132,7 +130,12 @@ fileprivate struct BackgroundViewModifier: ViewModifier {
|
|||||||
func backgroundColor(interactionState: InteractionState) -> Color {
|
func backgroundColor(interactionState: InteractionState) -> Color {
|
||||||
guard appearsActive else { return Color.clear }
|
guard appearsActive else { return Color.clear }
|
||||||
if #available(macOS 26.0, *) {
|
if #available(macOS 26.0, *) {
|
||||||
let base = colorScheme == .dark ? Color(white: 0.2) : Color(white: 1)
|
let base: Color
|
||||||
|
if #available(macOS 27.0, *) {
|
||||||
|
base = .clear
|
||||||
|
} else {
|
||||||
|
base = colorScheme == .dark ? Color(white: 0.2) : Color(white: 1)
|
||||||
|
}
|
||||||
switch interactionState {
|
switch interactionState {
|
||||||
case .normal:
|
case .normal:
|
||||||
return base
|
return base
|
||||||
|
|||||||
Reference in New Issue
Block a user