fix(macos): hidden autostart dock indicator + 자동실행 mismatch false positive
두 macOS 한정 버그 묶음: 1. autostart --hidden 으로 spawn 시 quickCapture (NSPanel) 만 떠 있어 dock running indicator (점) 가 표출 안 됨 — NSPanel 은 NSApp main window 로 register 안 됨. inboxWindow 를 hidden 상태로 미리 create + ready-to-show 시점에 showInactive → hide trick 으로 NSApp 에 register, 사용자 화면 깜빡임 없이 dock 점 켜짐. 2. SettingsPage 의 자동실행 mismatch 경고가 macOS 에서 false positive. macOS 13+ 의 SMAppService API 가 args 옵션 무시 + unsigned/Electron 앱에 대해 executableWillLaunchAtLogin 을 자주 false 로 반환 → 정상 등록 상태에서도 경고 떠 있음. AutostartDiagnostic 결과에 platform 필드 추가, willLaunch 신호는 win32 에서만 mismatch 판정에 사용. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -11,10 +11,13 @@ export function getInboxWindow(): BrowserWindowType | null {
|
||||
return inboxWindow;
|
||||
}
|
||||
|
||||
export function createInboxWindow(): BrowserWindowType {
|
||||
export function createInboxWindow(opts: { visible?: boolean } = {}): BrowserWindowType {
|
||||
const visible = opts.visible ?? true;
|
||||
if (inboxWindow && !inboxWindow.isDestroyed()) {
|
||||
inboxWindow.show();
|
||||
inboxWindow.focus();
|
||||
if (visible) {
|
||||
inboxWindow.show();
|
||||
inboxWindow.focus();
|
||||
}
|
||||
return inboxWindow;
|
||||
}
|
||||
|
||||
@@ -43,6 +46,19 @@ export function createInboxWindow(): BrowserWindowType {
|
||||
}
|
||||
});
|
||||
|
||||
inboxWindow.once('ready-to-show', () => inboxWindow?.show());
|
||||
inboxWindow.once('ready-to-show', () => {
|
||||
if (visible) {
|
||||
inboxWindow?.show();
|
||||
return;
|
||||
}
|
||||
// macOS hidden autostart: regular NSWindow 를 NSApp 에 register 해야 dock running
|
||||
// indicator (점) 가 표출된다. panel type 의 quickCapture 만 있으면 NSPanel 미인지 →
|
||||
// dock 점이 안 보여 "앱이 안 떠 있는 것처럼" 보이는 버그. showInactive 로 focus 점유
|
||||
// 없이 짧게 표출 후 즉시 hide — 사용자 화면 깜빡임 최소화.
|
||||
if (process.platform === 'darwin') {
|
||||
inboxWindow?.showInactive();
|
||||
inboxWindow?.hide();
|
||||
}
|
||||
});
|
||||
return inboxWindow;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user