Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Vogel2020-07-23 11:58:12 +0000
committerLars Vogel2020-07-24 12:23:05 +0000
commit2d19c37c8fe13c6d128fcb64823d79dc18efd07f (patch)
tree75d055f3da99225e3a8511b5003ef7c49fbd566c
parent310f3a0fd0e5bb4f22c1d5cf572e9171265ddcf8 (diff)
downloadeclipse.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.java5
-rw-r--r--tests/org.eclipse.jface.tests/src/org/eclipse/jface/tests/dialogs/DialogTest.java6
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);

Back to the top