Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Williams2017-07-25 21:04:29 +0000
committerEric Williams2017-07-25 21:04:35 +0000
commit2b5b61a8a721d5c2a84df9cac18fb280a04de0fc (patch)
tree9b97206699ce4edfe70bae12287617c8b58cbf1c
parent17d7618b7f18c8dc175550c90545114f1f1b8bb9 (diff)
downloadeclipse.platform.swt-2b5b61a8a721d5c2a84df9cac18fb280a04de0fc.tar.gz
eclipse.platform.swt-2b5b61a8a721d5c2a84df9cac18fb280a04de0fc.tar.xz
eclipse.platform.swt-2b5b61a8a721d5c2a84df9cac18fb280a04de0fc.zip
Bug 290650: FillLayout computeSize troubles (original title is long)
Addition of reproducer snippet. Change-Id: Id1954f25fcba8419c03b6004d7308491b86e18b9 Signed-off-by: Eric Williams <ericwill@redhat.com>
-rw-r--r--tests/org.eclipse.swt.tests.gtk/Bug Snippets/org/eclipse/swt/tests/gtk/snippets/Bug290650_FillLayoutComputeSize.java65
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/org.eclipse.swt.tests.gtk/Bug Snippets/org/eclipse/swt/tests/gtk/snippets/Bug290650_FillLayoutComputeSize.java b/tests/org.eclipse.swt.tests.gtk/Bug Snippets/org/eclipse/swt/tests/gtk/snippets/Bug290650_FillLayoutComputeSize.java
new file mode 100644
index 0000000000..68e7347fa6
--- /dev/null
+++ b/tests/org.eclipse.swt.tests.gtk/Bug Snippets/org/eclipse/swt/tests/gtk/snippets/Bug290650_FillLayoutComputeSize.java
@@ -0,0 +1,65 @@
+package org.eclipse.swt.tests.gtk.snippets;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+/*
+ * Title: Bug 290650 - [Layout] If a composite with a FillLayout (with marginWidth != 0)
+ * contains a widget which could expand depending on a fixed width or height, than computeSize()
+ * doesn't calculate the expanding size correctly.
+ * How to run: launch snippet and observe size of Text widgets
+ * Bug description: One widget is only one line in height when it should be two
+ * Expected results: Both widgets should be 2 lines in height
+ * GTK Version(s): GTK2.x, GTK3.x
+ */
+public class Bug290650_FillLayoutComputeSize {
+ private static int margin = 100;
+ private static String msg = "This is a message with 2 lines and some text";
+
+ private static void init(Shell shell) {
+ Composite container1 = new Composite(shell, SWT.NONE);
+ FillLayout fillLayout1 = new FillLayout();
+ fillLayout1.marginWidth = margin;
+ container1.setLayout(fillLayout1);
+ container1.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_BLUE));
+
+ Text text1 = new Text(container1, SWT.WRAP);
+ text1.setText(msg);
+
+ Point containerSize1 = container1.computeSize(shell.getClientArea().width, SWT.DEFAULT);
+ container1.setSize(containerSize1);
+
+ Composite container2 = new Composite(shell, SWT.NONE);
+ container2.setLocation(margin, 50);
+ FillLayout fillLayout2 = new FillLayout();
+ container2.setLayout(fillLayout2);
+ container2.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_BLUE));
+
+ Text text2 = new Text(container2, SWT.WRAP);
+ text2.setText(msg);
+
+ Point containerSize2 = container2.computeSize(shell.getClientArea().width-2*margin, SWT.DEFAULT);
+ container2.setSize(containerSize2);
+
+ }
+
+ public static void main(String[] args) {
+ final Display display = new Display();
+ Shell shell = new Shell(display);
+ shell.setText("Fill Layout with Text-Widget Test");
+ shell.setSize(190 + 2 * margin, 400);
+ init(shell);
+ shell.open();
+ while (!shell.isDisposed()) {
+ if (!display.readAndDispatch())
+ display.sleep();
+ }
+ display.dispose();
+ }
+
+}

Back to the top