diff options
| author | Lars Vogel | 2020-07-23 11:58:12 +0000 |
|---|---|---|
| committer | Lars Vogel | 2020-07-24 12:23:05 +0000 |
| commit | 2d19c37c8fe13c6d128fcb64823d79dc18efd07f (patch) | |
| tree | 75d055f3da99225e3a8511b5003ef7c49fbd566c | |
| parent | 310f3a0fd0e5bb4f22c1d5cf572e9171265ddcf8 (diff) | |
| download | eclipse.platform.ui-2d19c37c8fe13c6d128fcb64823d79dc18efd07f.tar.gz eclipse.platform.ui-2d19c37c8fe13c6d128fcb64823d79dc18efd07f.tar.xz eclipse.platform.ui-2d19c37c8fe13c6d128fcb64823d79dc18efd07f.zip | |
Bug 544286 - Evaluate if Dialogs#initializeBounds can use asynchronousI20200724-1800
layouting via requestLayout
Change-Id: I6f8dfeac71c6d23095365db7366bf51754da415d
Signed-off-by: Lars Vogel <Lars.Vogel@vogella.com>
| -rw-r--r-- | bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/Dialog.java | 5 | ||||
| -rw-r--r-- | tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/dialogs/DialogTest.java | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/Dialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/Dialog.java index 31cbffa91b7..fbae8c90db8 100644 --- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/Dialog.java +++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/Dialog.java @@ -710,10 +710,9 @@ public abstract class Dialog extends Window { if (shell.getDisplay().getDismissalAlignment() == SWT.RIGHT) { // make the default button the right-most button Button defaultButton = shell.getDefaultButton(); - if (defaultButton != null - && isContained(buttonBar, defaultButton)) { + if (defaultButton != null && isContained(buttonBar, defaultButton)) { defaultButton.moveBelow(null); - defaultButton.getParent().layout(); + defaultButton.requestLayout(); } } } diff --git a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/dialogs/DialogTest.java b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/dialogs/DialogTest.java index 49cd240db6b..5319dbc4139 100644 --- a/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/dialogs/DialogTest.java +++ b/tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/dialogs/DialogTest.java @@ -19,6 +19,7 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import junit.framework.TestCase; @@ -58,6 +59,11 @@ public class DialogTest extends TestCase { // open the dialog so the widgets will be realized forceLayoutDialog.open(); + int waitEvents = 0; + while (Display.getDefault().readAndDispatch() && waitEvents++ < 500) { + // spin the event loop + } + // retrieve the 'OK' and 'Cancel' buttons Button okBtn = forceLayoutDialog.getButton(IDialogConstants.OK_ID); Button cancelBtn = forceLayoutDialog.getButton(IDialogConstants.CANCEL_ID); |
