mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-06-11 00:47:22 +00:00
Auto-clear startup feedback panel fill
The coloured rectangle that paints over the bottom panel during an app-launch animation was reset only by a change of WindowMaximizedTracker.showingWindow. In convergence mode kwinrc sets Placement=Centered, so launched apps stay non-maximized, showingWindow never flips and the band remained on the panel indefinitely. Restart a 600 ms safety timer whenever the animation is triggered. When it fires, clear colour and height to zero only if no maximized or fullscreen window exists, preserving the original mobile reset path while fixing the convergence one.
This commit is contained in:
parent
fe8b798cb2
commit
c52e331d31
1 changed files with 24 additions and 0 deletions
|
|
@ -25,6 +25,29 @@ Rectangle {
|
|||
easing.type: Easing.OutExpo
|
||||
}
|
||||
|
||||
// Auto-clear safety net.
|
||||
//
|
||||
// The colored fill is normally cleared by onShowingWindowChanged when
|
||||
// the launched app's maximized state toggles. In convergence mode apps
|
||||
// launch centered (kwinrc Placement=Centered), so showingWindow may
|
||||
// never flip to true and the change-based cleanup never fires — the
|
||||
// band would otherwise remain on the panel indefinitely.
|
||||
//
|
||||
// This timer runs after every panel-fill animation and clears the
|
||||
// rectangle if no maximized/fullscreen window is present, restoring
|
||||
// the original mobile behaviour while fixing the convergence path.
|
||||
Timer {
|
||||
id: autoClearTimer
|
||||
interval: 600 // animation duration (200) + settle time
|
||||
repeat: false
|
||||
onTriggered: {
|
||||
if (!root.maximizedTracker || !root.maximizedTracker.showingWindow) {
|
||||
root.color = 'transparent';
|
||||
root.height = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Reset when maximized window state changes
|
||||
Connections {
|
||||
target: maximizedTracker
|
||||
|
|
@ -46,6 +69,7 @@ Rectangle {
|
|||
|
||||
root.color = color;
|
||||
heightAnim.restart();
|
||||
autoClearTimer.restart();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue