diff options
author | Andrey Loskutov | 2018-08-13 15:20:22 +0000 |
---|---|---|
committer | Eric Williams | 2018-08-13 21:28:27 +0000 |
commit | b06158d7dd5b7576ae3250fd1c337625da5d2ee5 (patch) | |
tree | 60f9b244be204ce284e2da8d5e37e3441ad8f3a0 | |
parent | 6313a1324d08c937a5e55e77cbc91d1ade6d43c7 (diff) | |
download | eclipse.platform.swt-b06158d7dd5b7576ae3250fd1c337625da5d2ee5.tar.gz eclipse.platform.swt-b06158d7dd5b7576ae3250fd1c337625da5d2ee5.tar.xz eclipse.platform.swt-b06158d7dd5b7576ae3250fd1c337625da5d2ee5.zip |
Revert "Bug 436841 - [GTK3] FocusOut/In and Activate/Deactivate events when opening context menu"
This reverts commit 9f91c882bb8f96c689143525a71937171402a3d7.
3 files changed, 6 insertions, 91 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java index 2350c96d01..46f3894b46 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java @@ -757,7 +757,6 @@ long /*int*/ gtk_hide (long /*int*/ widget) { if (display.activeShell != null) { display.activeShell = getShell (); display.activeShell.ignoreFocusOut = false; - display.activeShell.ignoreActivate = false; } } sendEvent (SWT.Hide); @@ -777,7 +776,6 @@ long /*int*/ gtk_show (long /*int*/ widget) { if (display.activeShell != null) { display.activeShell = getShell (); display.activeShell.ignoreFocusOut = true; - display.activeShell.ignoreActivate = true; } return 0; } diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java index 23568edbae..655612f7a1 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Shell.java @@ -125,7 +125,7 @@ public class Shell extends Decorations { int minWidth, minHeight; Control lastActive; ToolTip [] toolTips; - boolean ignoreFocusOut, ignoreActivate; + boolean ignoreFocusOut; Region originalRegion; static final int MAXIMUM_TRIM = 128; @@ -1464,11 +1464,9 @@ long /*int*/ gtk_focus_in_event (long /*int*/ widget, long /*int*/ event) { if (widget != shellHandle) { return super.gtk_focus_in_event (widget, event); } - if (display.activeShell != this && !ignoreActivate) { - display.activeShell = this; - display.activePending = false; - sendEvent (SWT.Activate); - } + display.activeShell = this; + display.activePending = false; + sendEvent (SWT.Activate); return 0; } @@ -1478,10 +1476,8 @@ long /*int*/ gtk_focus_out_event (long /*int*/ widget, long /*int*/ event) { return super.gtk_focus_out_event (widget, event); } Display display = this.display; - if (!ignoreActivate) { - sendEvent (SWT.Deactivate); - setActiveControl (null); - } + sendEvent (SWT.Deactivate); + setActiveControl (null); if (display.activeShell == this && !ignoreFocusOut) { display.activeShell = null; display.activePending = false; diff --git a/tests/org.eclipse.swt.tests.gtk/ManualTests/org/eclipse/swt/tests/gtk/snippets/Bug436841_FocusActivateEventContextMenu.java b/tests/org.eclipse.swt.tests.gtk/ManualTests/org/eclipse/swt/tests/gtk/snippets/Bug436841_FocusActivateEventContextMenu.java deleted file mode 100644 index d048ee3914..0000000000 --- a/tests/org.eclipse.swt.tests.gtk/ManualTests/org/eclipse/swt/tests/gtk/snippets/Bug436841_FocusActivateEventContextMenu.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2018 Red Hat and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Red Hat - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tests.gtk.snippets; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.MenuAdapter; -import org.eclipse.swt.events.MenuEvent; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Menu; -import org.eclipse.swt.widgets.MenuItem; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Tree; -import org.eclipse.swt.widgets.TreeItem; - -public class Bug436841_FocusActivateEventContextMenu { - - public static void main(String[] args) { - final Display display = new Display(); - Shell shell = new Shell(display); - shell.setText(Bug436841_FocusActivateEventContextMenu.class.getName()); - shell.setLayout(new GridLayout(1, false)); - - Tree tree = new Tree(shell, SWT.BORDER); - tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - new TreeItem(tree, SWT.NONE).setText("Open context menu, hover Show In"); - - Menu menu = new Menu(tree); - tree.setMenu(menu); - - new MenuItem(menu, SWT.PUSH).setText("First"); - - MenuItem showInItem = new MenuItem(menu, SWT.CASCADE); - showInItem.setText("Show In"); - Menu showInMenu = new Menu(menu); - showInItem.setMenu(showInMenu); - showInMenu.addMenuListener(new MenuAdapter() { - @Override - public void menuShown(MenuEvent e) { - Shell activeShell = display.getActiveShell(); - System.out.println("menuShown: activeShell == " + activeShell); - } - }); - - display.addFilter(SWT.FocusIn, event -> new Exception("FocusIn: " + event.widget).printStackTrace()); - - display.addFilter(SWT.FocusOut, event -> new Exception("FocusOut: " + event.widget).printStackTrace()); - - display.addFilter(SWT.Activate, event -> new Exception("Activate: " + event.widget).printStackTrace()); - - display.addFilter(SWT.Deactivate, event -> new Exception("Deactivate: " + event.widget).printStackTrace()); - -// new Runnable() { -// @Override -// public void run() { -// System.out.print("."); // print a heartbeat to show where the user paused -// display.timerExec(1000, this); -// } -// }.run(); - - shell.setSize(400, 100); - shell.open(); - while (!shell.isDisposed()) { - if (!display.readAndDispatch()) - display.sleep(); - } - display.dispose(); - } - -}
\ No newline at end of file |