Skip to content

Skip Quick Access recompute on no-op resize#4090

Merged
vogella merged 1 commit into
eclipse-platform:masterfrom
vogella:lv/quickaccess-resize-race
Jun 15, 2026
Merged

Skip Quick Access recompute on no-op resize#4090
vogella merged 1 commit into
eclipse-platform:masterfrom
vogella:lv/quickaccess-resize-race

Conversation

@vogella

@vogella vogella commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

During the Quick Access popup's initial layout, every shell resize re-triggered the proposal computation, and each recompute cancels the job still in flight. On Windows the native search field produces a burst of layout resizes, so the computation for freshly typed text kept getting cancelled and the result table was never populated, which is the intermittent failure of testPreviousChoicesAvailableForExtension.

A resize only affects results when it changes how many rows fit, so the dialog now records the row count it last computed for and skips the resize-triggered recompute when that count is unchanged, removing the cancellation path. This also drops the redundant recompute on cosmetic resizes during normal use. Finally it fixes an accidental ~83 minute timeout (TIMEOUT * 1000) in that test's dialog-init wait.

Fixes #4009

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Test Results

   864 files     864 suites   59m 2s ⏱️
 8 050 tests  7 807 ✅ 243 💤 0 ❌
20 589 runs  19 934 ✅ 655 💤 0 ❌

Results for commit 85d06da.

♻️ This comment has been updated with latest results.

@vogella vogella force-pushed the lv/quickaccess-resize-race branch from 72c969b to 95c98c9 Compare June 12, 2026 17:04
@vogella

vogella commented Jun 12, 2026

Copy link
Copy Markdown
Contributor Author

The test failure due to the process kill on the Mac seems unrelated, maybe some ongoing releng work or just a infrastructure hickup? cc @HannesWell

QuickAccessContents armed a recompute on every shell resize during the
popup's initial layout, and each recompute cancels the in-flight compute
job. On Windows the native search field triggers a burst of initial
layout resizes, so the compute job scheduled for freshly typed text was
repeatedly cancelled and the table was never refreshed. This is the
intermittent failure in
QuickAccessDialogTest.testPreviousChoicesAvailableForExtension.

A resize only changes the results by changing how many rows fit, so
track the row count used for the last compute and skip the
resize-triggered update when it is unchanged. Remaining resizes are
coalesced with a trailing-edge debounce so a burst (for example
scrollbar oscillation during initial layout) collapses into a single
update once the layout settles, instead of cancelling the in-flight
compute job repeatedly.

Also fix an accidental ~83 minute timeout (TIMEOUT * 1000) in that
test's dialog-init wait.

Fixes eclipse-platform#4009
@vogella vogella force-pushed the lv/quickaccess-resize-race branch from abe4f1d to 85d06da Compare June 15, 2026 11:56
@vogella

vogella commented Jun 15, 2026

Copy link
Copy Markdown
Contributor Author

The test failure due to the process kill on the Mac seems unrelated, maybe some ongoing releng work or just a infrastructure hickup? cc @HannesWell

Fixed, it was a incorrectly committed 83 min timeout in a test. #4096

@vogella vogella merged commit 675a1a3 into eclipse-platform:master Jun 15, 2026
18 checks passed
@vogella vogella deleted the lv/quickaccess-resize-race branch June 15, 2026 12:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

QuickAccessDialogTest.testPreviousChoicesAvailableForExtension fails

1 participant