Skip to content

WizardDialog resizes itself in an endless loop after a DPI change ecl… - #4428

Open
astrograph wants to merge 1 commit into
eclipse-platform:masterfrom
astrograph:wizarddialog-resize-loop
Open

astrograph wants to merge 1 commit into
eclipse-platform:masterfrom
astrograph:wizarddialog-resize-loop

Conversation

@astrograph

Copy link
Copy Markdown
Contributor

…ipse-platform/eclipse.platform#2986

WizardDialog builds its shell with SWT.RESIZE but inherits isResizable() == false from Dialog, so hookZoomChangeListenerForDefaultSizedDialogs() installs adaptDefaultSizeListener on every wizard. That listener calls shell.setSize(shell.computeSize(...)), which sends the next SWT.Resize, and it has no re-entrancy guard: whenever the computed size is not a fixed point the listener recurses until the stack is exhausted.

Let WizardDialog report the SWT.RESIZE bit of its shell style, and make the listener skip a nested call and a size that has not changed.

Fixes eclipse-platform/eclipse.platform#2986

@github-actions

github-actions Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Test Results

   864 files  ±  0     864 suites  ±0   37m 52s ⏱️ - 9m 16s
 8 403 tests ±  0   8 161 ✅ ±  0  242 💤 ± 0  0 ❌ ±0 
20 746 runs   - 332  20 129 ✅  - 272  617 💤  - 60  0 ❌ ±0 

Results for commit 357c597. ± Comparison against base commit 0074e63.

♻️ This comment has been updated with latest results.

@astrograph
astrograph force-pushed the wizarddialog-resize-loop branch from b3b863c to 5007d43 Compare October 8, 2026 06:40
@iloveeclipse

Copy link
Copy Markdown
Member

@astrograph : we do not allow merge commits. Please update to latest master, cherry-pick your single commit with the fix and force push.

@astrograph astrograph closed this Oct 8, 2026
@astrograph
astrograph force-pushed the wizarddialog-resize-loop branch from 77c5495 to 883523e Compare October 8, 2026 11:32
@astrograph astrograph reopened this Oct 8, 2026
…ipse-platform/eclipse.platform#2986

WizardDialog builds its shell with SWT.RESIZE but inherits isResizable() ==
false from Dialog, so hookZoomChangeListenerForDefaultSizedDialogs() installs
adaptDefaultSizeListener on every wizard. That listener calls
shell.setSize(shell.computeSize(...)), which sends the next SWT.Resize, and it
has no re-entrancy guard: whenever the computed size is not a fixed point the
listener recurses until the stack is exhausted.

Let WizardDialog report the SWT.RESIZE bit of its shell style, and make the
listener skip a nested call and a size that has not changed.

Fixes eclipse-platform/eclipse.platform#2986

Signed-off-by: Philipp SALZGEBER <Philipp.SALZGEBER@bachmann.info>
@astrograph
astrograph force-pushed the wizarddialog-resize-loop branch from ddb37eb to 357c597 Compare October 8, 2026 14:35
@eclipse-eca-validation

Copy link
Copy Markdown

Hi @astrograph — thank you for your contribution!

The Eclipse Contributor Agreement (ECA) check has failed for this pull request for the following reason(s):

  • An Eclipse Contributor Agreement is required for Eclipse user 'mmisingnameg5t'(committer).

To resolve this, please:

  1. Sign in or create an Eclipse Foundation account on the Eclipse Foundation Accounts site
  2. Ensure your GitHub username is linked to your Eclipse account under the "Link GitHub Account" tab in the Edit Profile section
  3. Complete and submit the ECA form

Once done, push a new commit (or rebase) to re-trigger the ECA validation.

If you believe you've already completed these steps, please double-check your account settings or report an issue to the Eclipse Foundation Helpdesk.

Thanks again for your contribution!

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.

WizardDialog resizes itself in an endless loop after a DPI change

2 participants