diff options
author | Eric Williams | 2017-07-25 21:04:29 +0000 |
---|---|---|
committer | Eric Williams | 2017-07-25 21:04:35 +0000 |
commit | 2b5b61a8a721d5c2a84df9cac18fb280a04de0fc (patch) | |
tree | 9b97206699ce4edfe70bae12287617c8b58cbf1c | |
parent | 17d7618b7f18c8dc175550c90545114f1f1b8bb9 (diff) | |
download | eclipse.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.java | 65 |
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(); + } + +} |