Stop stranding the Launching… OSD when a second app is launched

This commit is contained in:
husamemad
2026-07-28 13:18:48 +03:00
parent f4e8470c3a
commit 43c15a4015
2 changed files with 12 additions and 1 deletions
+5 -1
View File
@@ -150,11 +150,15 @@ Item {
try { return ToplevelManager.toplevels.values.length } catch (e) { return 0 }
}
// launchOsdOpen tracks whether the OSD is on screen, not which launch put it
// there, so a new launch must not clear it: the OSD is shown with duration 0,
// and only closeLaunchFeedback() takes it down. Dropping the flag here would
// orphan an OSD left over from the previous launch, and the timer restarts
// below discard the timeout that was its last chance to close.
function beginLaunchFeedback(name) {
root.launchSerial++
root.launchToplevelCount = root.toplevelCount()
root.launchActiveToplevel = ToplevelManager.activeToplevel
root.launchOsdOpen = false
root.launchOsdMessage = "Launching " + String(name || "application") + "…"
launchDelay.restart()
launchTimeout.restart()
+7
View File
@@ -121,6 +121,13 @@ assert(
'app library prefers indexed app icons over ambiguous themed icons'
)
const beginLaunchMatch = appLibraryQml.match(/function beginLaunchFeedback\(name\) \{([\s\S]*?)\n \}/)
assert(beginLaunchMatch, 'app library beginLaunchFeedback function exists')
assert(
!beginLaunchMatch[1].includes('root.launchOsdOpen = false'),
'app library keeps owning an OSD a previous launch left on screen'
)
const openMatch = menuQml.match(/function openExistingMenu\(initialMenu\) \{([\s\S]*?)\n \}/)
assert(openMatch, 'menu openExistingMenu function exists')
assert(