macos: add inset margin so overlay shadow isn't clipped
This commit is contained in:
@@ -273,7 +273,7 @@ final class ControlChannel: ObservableObject {
|
|||||||
proc.standardError = errPipe
|
proc.standardError = errPipe
|
||||||
try proc.run()
|
try proc.run()
|
||||||
// Give ssh a brief moment; if it exits immediately, surface the error.
|
// Give ssh a brief moment; if it exits immediately, surface the error.
|
||||||
try? Task.sleep(nanoseconds: 200_000_000) // 200ms
|
Thread.sleep(forTimeInterval: 0.2) // 200ms
|
||||||
if !proc.isRunning {
|
if !proc.isRunning {
|
||||||
let err = String(data: errPipe.fileHandleForReading.readDataToEndOfFile(), encoding: .utf8)?.trimmingCharacters(in: .whitespacesAndNewlines)
|
let err = String(data: errPipe.fileHandleForReading.readDataToEndOfFile(), encoding: .utf8)?.trimmingCharacters(in: .whitespacesAndNewlines)
|
||||||
throw ControlChannelError.sshFailed(err ?? "ssh exited")
|
throw ControlChannelError.sshFailed(err ?? "ssh exited")
|
||||||
|
|||||||
@@ -184,8 +184,9 @@ final class VoiceWakeOverlayController: ObservableObject {
|
|||||||
|
|
||||||
private func ensureWindow() {
|
private func ensureWindow() {
|
||||||
if self.window != nil { return }
|
if self.window != nil { return }
|
||||||
|
let borderPad = self.closeOverflow
|
||||||
let panel = NSPanel(
|
let panel = NSPanel(
|
||||||
contentRect: NSRect(x: 0, y: 0, width: self.width + self.closeOverflow, height: 60 + self.closeOverflow),
|
contentRect: NSRect(x: 0, y: 0, width: self.width + borderPad * 2, height: 60 + borderPad * 2),
|
||||||
styleMask: [.nonactivatingPanel, .borderless],
|
styleMask: [.nonactivatingPanel, .borderless],
|
||||||
backing: .buffered,
|
backing: .buffered,
|
||||||
defer: false)
|
defer: false)
|
||||||
@@ -211,7 +212,7 @@ final class VoiceWakeOverlayController: ObservableObject {
|
|||||||
private func targetFrame() -> NSRect {
|
private func targetFrame() -> NSRect {
|
||||||
guard let screen = NSScreen.main else { return .zero }
|
guard let screen = NSScreen.main else { return .zero }
|
||||||
let height = self.measuredHeight()
|
let height = self.measuredHeight()
|
||||||
let size = NSSize(width: self.width + self.closeOverflow, height: height + self.closeOverflow)
|
let size = NSSize(width: self.width + self.closeOverflow * 2, height: height + self.closeOverflow * 2)
|
||||||
let visible = screen.visibleFrame
|
let visible = screen.visibleFrame
|
||||||
let origin = CGPoint(
|
let origin = CGPoint(
|
||||||
x: visible.maxX - size.width - self.padding,
|
x: visible.maxX - size.width - self.padding,
|
||||||
@@ -395,6 +396,8 @@ private struct VoiceWakeOverlayView: View {
|
|||||||
}
|
}
|
||||||
.padding(.top, self.controller.closeOverflow)
|
.padding(.top, self.controller.closeOverflow)
|
||||||
.padding(.leading, self.controller.closeOverflow)
|
.padding(.leading, self.controller.closeOverflow)
|
||||||
|
.padding(.trailing, self.controller.closeOverflow)
|
||||||
|
.padding(.bottom, self.controller.closeOverflow)
|
||||||
.onAppear { self.textFocused = false }
|
.onAppear { self.textFocused = false }
|
||||||
.onChange(of: self.controller.model.text) { _, _ in
|
.onChange(of: self.controller.model.text) { _, _ in
|
||||||
self.textFocused = self.controller.model.isEditing
|
self.textFocused = self.controller.model.isEditing
|
||||||
|
|||||||
Reference in New Issue
Block a user