You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Wire the RaiseWindowMessage protocol message, extension D-Bus RaiseWindow method, daemon-side dispatch, and client-side row-tap sequence per the Stage 3 spec resolution.
Touch points
daemon/deckd/protocol.py: RaiseWindowMessage(PydanticBaseModel) with type: Literal["raise_window"] and window_id: str. Add to ClientMessage discriminated union.
packaging/gnome-shell/deckd-focus@local/extension.js: maintain Map<window_id, Meta.Window> (populate in ListWindows(), prune on Meta.Window::unmanaging). Add RaiseWindow(s) → b to the org.deckd.Focus interface XML and implement it as Main.activateWindow(map.get(window_id)). Return false when window_id missing from map. Update the version number in metadata.json.
daemon/deckd/platform.py: add async def raise_window(self, window_id: str) → None to PlatformBackend (default raises UnimplementedCapability("raise_window")). GnomeShellFocusBackend: override to call gdbus org.deckd.Focus.RaiseWindow (fire-and-forget, log on false return). Add "raise_window" to capabilities().
daemon/deckd/server.py: in the WS message dispatch, route RaiseWindowMessage → await backend.raise_window(msg.window_id). On false from gdbus return or any exception: emit raise_failed event on the diagnostic EventMessage stream (reference: Live diagnostic event stream and correlation IDs #73).
client/src/App.tsx: in RunningWindowsList's onRowTap handler (~line 636-647), replace the placeholder console.log with: send { type: "raise_window", window_id } then send { type: "clear_view" }.
Verification
Unit/round-trip tests for RaiseWindowMessage JSON serialization (daemon + client)
Extension: test that RaiseWindow returns true for a known window, false for a retired id
Manual: tap a row in the running-windows list on GNOME 50 Wayland; the app raises and the view closes
Part of #116
Scope
Wire the
RaiseWindowMessageprotocol message, extension D-BusRaiseWindowmethod, daemon-side dispatch, and client-side row-tap sequence per the Stage 3 spec resolution.Touch points
daemon/deckd/protocol.py:RaiseWindowMessage(PydanticBaseModel)withtype: Literal["raise_window"]andwindow_id: str. Add toClientMessagediscriminated union.client/src/protocol.ts:ClientRaiseWindow { type: "raise_window"; window_id: string }. Add toClientMessageunion.packaging/gnome-shell/deckd-focus@local/extension.js: maintainMap<window_id, Meta.Window>(populate inListWindows(), prune onMeta.Window::unmanaging). AddRaiseWindow(s) → bto theorg.deckd.Focusinterface XML and implement it asMain.activateWindow(map.get(window_id)). Returnfalsewhen window_id missing from map. Update the version number inmetadata.json.daemon/deckd/platform.py: addasync def raise_window(self, window_id: str) → NonetoPlatformBackend(default raisesUnimplementedCapability("raise_window")).GnomeShellFocusBackend: override to call gdbusorg.deckd.Focus.RaiseWindow(fire-and-forget, log onfalsereturn). Add"raise_window"tocapabilities().daemon/deckd/server.py: in the WS message dispatch, routeRaiseWindowMessage→await backend.raise_window(msg.window_id). Onfalsefrom gdbus return or any exception: emitraise_failedevent on the diagnosticEventMessagestream (reference: Live diagnostic event stream and correlation IDs #73).client/src/App.tsx: inRunningWindowsList'sonRowTaphandler (~line 636-647), replace the placeholderconsole.logwith: send{ type: "raise_window", window_id }then send{ type: "clear_view" }.Verification
RaiseWindowMessageJSON serialization (daemon + client)RaiseWindowreturnstruefor a known window,falsefor a retired id