CmdPal: Fix hotkey navigation when palette is showing transient dock page (#48089)
## Summary When a keyboard shortcut opens CmdPal to an extension while the palette is already showing a dock-launched transient page, `GoHome(false)` cannot restore the root page — the frame's back stack is empty because the transient dock page was never pushed on top of root. The user ends up with only the hotkey-target page in the frame with no way to navigate back to the main list. ## Root Cause In `ShellPage.SummonOnUiThread()`, the hotkey-to-page branch called `GoHome(false)` before sending `ShowWindowMessage`. But when the active page is a transient dock page, `_currentlyTransient` is still `true` and the frame back stack is empty, so `GoHome` can't re-establish the root page as the frame base. ## Fix Added `ResetToHome()` to `ShellViewModel`, mirroring the pattern already used in `WindowHiddenMessage` handling: 1. Clears `_currentlyTransient` 2. Calls `_rootPageService.GoHome()` to reset extension state 3. Sends `PerformCommandMessage` for `_rootPage` — navigating MainListPage into the frame as the base In `ShellPage.SummonOnUiThread()`, the `GoHome(false)` call in the `isPage` branch is replaced with `ViewModel.ResetToHome()`. The root page is then cleanly in the frame before the hotkey target's `PerformCommandMessage` navigates on top of it. Fixes #47994 Co-authored-by: root <root@io.bbq> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
M
Michael Jolley committed
ba20da161161444fc0bde0675d6853e5b4391d13
Parent: 35f2ed8
Committed by GitHub <noreply@github.com>
on 6/1/2026, 9:29:53 PM