Selection menu surface: chip that expands to actions (TASK-18)
Overlay layer following DialHost, keyboardFocus None throughout, and an input mask limited to the card so taps elsewhere reach the app underneath. Anchors to the pointer hint above the touch point, clamped on screen. Chip shows a character count, never a preview: the surface floats over the app that owns the selection and the content may be a password, so it stays ambient and discloses nothing. Read Aloud is live via Speech; agent and reference actions render with the reason they cannot act yet. Adds DeviceEvidence, reporting input to the state machine's existing Request::Input with an intent label, so a new input surface is not another isolated actor per DEVICE-STATE-MACHINE 1. Opt-in: nothing loads or watches until Config.options.selection.enable.
This commit is contained in:
parent
147999a918
commit
0bebc779c6
10 changed files with 606 additions and 0 deletions
|
|
@ -28,6 +28,7 @@ import qs.modules.ii.verticalBar
|
|||
import qs.modules.ii.wallpaperSelector
|
||||
import qs.modules.souveraine.dial
|
||||
import qs.modules.souveraine.navigation
|
||||
import qs.modules.souveraine.selection
|
||||
|
||||
// The Souveraine panel family — one family for both modes.
|
||||
// Starts at exact panel parity with IllogicalImpulseFamily (our overridden
|
||||
|
|
@ -64,6 +65,13 @@ Scope {
|
|||
PanelLoader { component: Overview {} }
|
||||
PanelLoader { component: Polkit {} }
|
||||
PanelLoader { component: DialHost {} }
|
||||
// Text-selection action menu (TASK-18). Gated on the opt-in config: the
|
||||
// service behind it watches every selection on the device, so it must not
|
||||
// load by default. See Config.options.selection.
|
||||
PanelLoader {
|
||||
extraCondition: Config.options.selection.enable
|
||||
component: SelectionHost {}
|
||||
}
|
||||
|
||||
// Gestures is a singleton and QML instantiates singletons lazily, so its
|
||||
// IpcHandler never registered — `gesture` answered "Target not found"
|
||||
|
|
|
|||
Loading…
Reference in a new issue