Repository navigation
Conversation
Test Results 867 files 867 suites 43m 13s ⏱️ Results for commit d2252ee. ♻️ This comment has been updated with latest results. |
e7045c4 to
9f90fae
Compare
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Deferred listeners need filtering and deduplication to avoid persistent or repeated resize handling.
Review effort: Balanced
Findings: 1
What changed in this PR
Fixes delayed CSS styling for hidden CTabFolder pages.
Changes:
- Defers styling until a hidden page becomes selected or attached.
- Adds regression tests for both page-creation sequences.
- Removes the obsolete
swt-simpletest.
| File | Description |
|---|---|
CSSSWTApplyStylesListener.java |
Adds deferred page styling listeners. |
CTabFolderTest.java |
Adds regression coverage and removes obsolete coverage. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
ec93fb9 to
8036197
Compare
e102dfd to
8a07003
Compare
8a07003 to
3d4d5c8
Compare
There was a problem hiding this comment.
🟡 Changes recommended
Already-sized and reparented pages can still remain unstyled.
2 open findings
1 resolved since last review
🧠 Review effort: Balanced
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
| // the control may have been reparented, and a new skin event watches it again | ||
| boolean inFolder = control.getParent() == folder && !folder.isDisposed(); | ||
| if (inFolder && !isPageOfSelectedTab(folder, control)) { | ||
| return; | ||
| } | ||
| control.removeListener(SWT.Show, this); | ||
| control.removeListener(SWT.Resize, this); | ||
| control.setData(pendingPageKey, null); | ||
| if (inFolder) { | ||
| engine.applyStyles(control, true); | ||
| } |
The Search dialog opened unstyled until a tab was switched. A CTabFolder exposes only the page of its selected tab to the CSS engine, and applyStyles skips an element that is not visible. A page skinned while its tab is not selected, or before it is attached to its tab, as SearchDialog and its search pages do, is skipped, and neither the programmatic setSelection nor the attach sends a skin event that would restyle it. Watch such a page for the show or resize that makes it the selected tab's page and style it then. Assisted-by: multiple AI agents and layers of automated tooling 🤖
3d4d5c8 to
d2252ee
Compare





The Search dialog opens unstyled in the dark theme and only picks up the theme once a tab is switched. A CTabFolder exposed only the page of its selected tab to the CSS engine, so a page skinned before it was attached, or while its tab was not yet selected, was skipped, and neither attaching a page to the selected tab nor a programmatic setSelection fires an event that would style it later.
Now only the pages of unselected tabs are hidden from the engine, so a page no tab holds yet is styled as soon as it is skinned, and a skipped page of an unselected tab is styled on the Show event that selecting its tab always sends. This closes the case of an already sized, visible page attached to the selected tab without any further event, and the pages of unselected tabs are still skipped, so styling stays lazy.
New CTabFolderTest cases cover the dialog's sequences, a pre-sized page attached after pending paints are drained, toolbar pages, reparented pages, repeated re-skins and the still-deferred unselected page. The swt-simple test is dropped, since curved tabs are gone and getSimple() always returns true.