diff options
author | Paul D'Pong | 2021-02-11 16:18:12 +0000 |
---|---|---|
committer | Andrey Loskutov | 2021-02-12 15:02:50 +0000 |
commit | 0454e63eb257c484fa997757978f1e2ad8f33bb5 (patch) | |
tree | 1bec66657b5221216d8b3fbe91f57b0911616b3a | |
parent | 10d7527c72ccc5c83fd236f44512d1054c4e7e00 (diff) | |
download | eclipse.platform.swt-0454e63eb257c484fa997757978f1e2ad8f33bb5.tar.gz eclipse.platform.swt-0454e63eb257c484fa997757978f1e2ad8f33bb5.tar.xz eclipse.platform.swt-0454e63eb257c484fa997757978f1e2ad8f33bb5.zip |
Bug 570286 - [GTK][Tree] Pressing Enter does not generate KeyDown event
- Revert change from Bug 488772
- Allows super.gtk_key_press_event button to run and generate the
KeyDown event
- Added manual test case
Change-Id: Iffef0f892b9a9220e1e9a4c2222e5b9fc6d34155
Signed-off-by: Paul D'Pong <sdamrong@redhat.com>
2 files changed, 48 insertions, 1 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java index 0c95d6ebd3..2e465e594f 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java @@ -2356,8 +2356,8 @@ long gtk_key_press_event (long widget, long event) { int keymask = gdk_event_get_state (event); if ((keymask & (GDK.GDK_SUPER_MASK | GDK.GDK_META_MASK | GDK.GDK_HYPER_MASK | GDK.GDK_MOD1_MASK)) == 0) { sendTreeDefaultSelection (); - return 0; // Avoid doubling the enter event to other widgets when it is a DefaultSelectionEvent } + break; } return super.gtk_key_press_event (widget, event); diff --git a/tests/org.eclipse.swt.tests.gtk/ManualTests/org/eclipse/swt/tests/gtk/snippets/Bug570286_EnterTest.java b/tests/org.eclipse.swt.tests.gtk/ManualTests/org/eclipse/swt/tests/gtk/snippets/Bug570286_EnterTest.java new file mode 100644 index 0000000000..3a83f01ed9 --- /dev/null +++ b/tests/org.eclipse.swt.tests.gtk/ManualTests/org/eclipse/swt/tests/gtk/snippets/Bug570286_EnterTest.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2021 Syntevo and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Syntevo - initial API and implementation + *******************************************************************************/ +package org.eclipse.swt.tests.gtk.snippets; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Tree; +import org.eclipse.swt.widgets.TreeItem; + +public class Bug570286_EnterTest { + + public static void main(String[] args) { + final Display display = new Display(); + + final Shell shell = new Shell(display); + shell.setLayout(new FillLayout()); + + final Tree tree = new Tree(shell, SWT.BORDER); + final TreeItem item = new TreeItem(tree, 0); + item.setText("a node"); + + tree.addListener(SWT.KeyDown, event -> System.out.println(event.keyCode + " " + Integer.valueOf(event.character))); + + shell.setSize(400, 200); + shell.open(); + + while (!shell.isDisposed()) { + if (!display.readAndDispatch()) { + display.sleep(); + } + } + + display.dispose(); + } +}
\ No newline at end of file |