mirror of
https://github.com/feschber/lan-mouse.git
synced 2026-05-09 15:48:04 +03:00
macos: fold relaunch prompt into the warning row instead of a toast
The cut-off toast UX ("Accessibility granted. Relaunch Lan Mouse so
capture and emulat…") was unreadable in a compact window and split
the "grant" and "relaunch" flows into two disconnected surfaces. Fold
everything into the existing warning row with state-dependent content:
- AX missing:
title = "input capture is disabled"
subtitle = "grant Accessibility permission to enable"
button = "Grant" → opens System Settings → Accessibility
- AX granted, daemon still bailed:
title = "relaunch required"
subtitle = "Accessibility granted — restart to activate capture
and emulation"
button = "Relaunch" → spawns a fresh bundle via `open` after
a 1s delay, then quits.
- Both active: row hidden.
The emulation_status_row is kept hidden on macOS because capture and
emulation share the same TCC gate — a single row is sufficient and
two identical-looking warnings were noisy. `handle_emulation` still
exists for the non-macOS platforms where the rows are distinct.
Side effects:
- `relaunch_bundle` moved from lib.rs to macos_privacy so imp.rs can
call it from the row button handler.
- AX watcher callback shrinks to `window.present()` +
`refresh_capture_emulation_status()`; the toast-based dialog is
gone along with its helper.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -50,7 +50,7 @@
|
||||
<child>
|
||||
<object class="AdwActionRow" id="capture_status_row">
|
||||
<property name="title">input capture is disabled</property>
|
||||
<property name="subtitle">required for outgoing connections — click Reenable to grant permission</property>
|
||||
<property name="subtitle">required for outgoing and incoming connections</property>
|
||||
<property name="icon-name">dialog-warning-symbolic</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="input_capture_button">
|
||||
@@ -76,7 +76,7 @@
|
||||
<child>
|
||||
<object class="AdwActionRow" id="emulation_status_row">
|
||||
<property name="title">input emulation is disabled</property>
|
||||
<property name="subtitle">required for incoming connections — click Reenable to grant permission</property>
|
||||
<property name="subtitle">required for incoming connections</property>
|
||||
<property name="icon-name">dialog-warning-symbolic</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="input_emulation_button">
|
||||
|
||||
Reference in New Issue
Block a user