Overview: show minimized windows in grid to fix badge count mismatch - #452
Merged
AllTerrainDeveloper merged 6 commits intoJul 30, 2026
Conversation
…m out. - Include minimized windows in the overview grid so the count badge and thumbnail grid are always consistent - Render minimized thumbnails at 60% opacity as a visual cue, without auto-restoring the window (preserving user's minimization intent) - Restore minimized windows on click before focusing, so landing on a minimized tile un-minimizes it - Remove the "all-minimized" Show Desktop auto-restore path — it's no longer needed since the grid now renders minimized windows directly
…inimized case - Replace the "all-minimized auto-restore" test — minimized windows now stay minimized in the grid instead of being restored - Assert count badge textContent equals `.desktop-mode-window--overview` length when 1 of 3 windows is minimized, closing the original badge/grid mismatch regression - Remove the "partial-minimize unchanged" assertion (minimized windows now get the `--overview` class like every other window)
- Guard minimize() transitionend listener with !--overview class check so a pending opacity transition can't re-hide content-visibility/iframe while the window is an active overview thumbnail - Restore --fullscreen class before selected.restore() on the selection path so the element carries the class when restore flips the state to 'fullscreen' and calls updateFullscreenBodyClass() - Centralize render-suppression and fullscreen-strip logic into prepareWindowForOverviewLayout / restoreWindowAfterOverviewLayout so enterOverview and relayoutOverviewForActiveDesktop stay in sync. - Remove redundant pointer-events: auto from the minimized-overview CSS.
- Verifies enterOverview resets content-visibility and iframe visibility on completed-minimize windows so thumbnails render actual content - Confirms transitionend listener does not re-hide content-visibility/iframe when the window is already in overview (overview-class guard) - Confirms exitOverview re-applies --fullscreen class before win.restore() so the fullscreen resize path runs instead of leaving a thumbnail-sized layout
Contributor
Author
|
Note: These changes introduce a behavioral change. Previously, if all open windows were minimized before entering Overview, they would all be restored automatically once user entered Overview. With this change, minimized windows remain minimized when entering Overview. If the user selects a minimized window, only that window is restored. If no window is selected, all windows remain minimized, resulting in behavior similar to Show Desktop on Windows. |
KarunyaChavan
marked this pull request as ready for review
July 30, 2026 07:55
AllTerrainDeveloper
approved these changes
Jul 30, 2026
Comment on lines
+305
to
+309
| test( 'enterOverview makes completed-minimize windows renderable for thumbnails', async () => { | ||
| // Regression guard for the "minimized thumbnail renders blank" bug. | ||
| // After the minimize transition fires, `content-visibility: hidden` | ||
| // and `iframe.style.visibility = 'hidden'` are set on the window. | ||
| // enterOverview must reverse these so the overview thumbnail shows |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

This PR fixes the window count badge in Overview mode including minimized windows while the grid filtered them out, causing a mismatch between the badge number and the visible thumbnail tiles. Instead of filtering minimized windows from the grid, they now render as dimmed thumbnails (60% opacity) so the badge and grid stay consistent.
Closes #437
Why:
What Changed:
Overview: Minimized windows now appear in the Overview grid. Removed the "all minimized" auto-restore behavior, restored the selected minimized window before focusing it on exit, and added helper functions to keep thumbnails renderable while preserving fullscreen state.
src/window/index.ts: Updated theminimize()transition handler so Overview thumbnails don't accidentally hide their content during opacity transitions.src/window-manager/desktops.ts: Updated Overview relayout to include minimized windows and reuse the new layout helper functions.assets/css/window-overview.css: Dimmed minimized thumbnails (opacity: 0.6) so they're easy to distinguish, and removed a redundantpointer-eventsrule.tests/vitest/desktops.test.ts: Updated existing tests for the new minimized-window behavior and added coverage for the badge count regression, thumbnail rendering, transition handling, and fullscreen restoration.Steps for Testing: