From 77a49fafef726e0ce53a8a19967024f439c968ba Mon Sep 17 00:00:00 2001 From: Lars Vogel Date: Fri, 19 Dec 2025 15:44:41 +0100 Subject: [PATCH] Remove beeping from FilteredTree beeping is annoying and beeping in a FilteredTree in certain internal situations does not add value for the user. --- .../ui/dialogs/filteredtree/FilteredTree.java | 38 +++++++++---------- .../org/eclipse/ui/dialogs/FilteredTree.java | 36 ++++++++---------- 2 files changed, 34 insertions(+), 40 deletions(-) diff --git a/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/dialogs/filteredtree/FilteredTree.java b/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/dialogs/filteredtree/FilteredTree.java index 0fbff270da2..582d9fbf200 100644 --- a/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/dialogs/filteredtree/FilteredTree.java +++ b/bundles/org.eclipse.e4.ui.dialogs/src/org/eclipse/e4/ui/dialogs/filteredtree/FilteredTree.java @@ -36,7 +36,6 @@ import org.eclipse.swt.layout.RowData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; @@ -391,25 +390,24 @@ public void keyPressed(KeyEvent e) { if (e.detail == SWT.TRAVERSE_RETURN) { e.doit = false; if (getViewer().getTree().getItemCount() == 0) { - Display.getCurrent().beep(); - } else { - // if the initial filter text hasn't changed, do not try - // to match - boolean hasFocus = getViewer().getTree().setFocus(); - boolean textChanged = !getInitialText().equals(filterText.getText().trim()); - if (hasFocus && textChanged && filterText.getText().trim().length() > 0) { - Tree tree = getViewer().getTree(); - TreeItem item; - if (tree.getSelectionCount() > 0) { - item = getFirstMatchingItem(tree.getSelection()); - } else { - item = getFirstMatchingItem(tree.getItems()); - } - if (item != null) { - tree.setSelection(new TreeItem[] { item }); - ISelection sel = getViewer().getSelection(); - getViewer().setSelection(sel, true); - } + return; + } + // if the initial filter text hasn't changed, do not try + // to match + boolean hasFocus = getViewer().getTree().setFocus(); + boolean textChanged = !getInitialText().equals(filterText.getText().trim()); + if (hasFocus && textChanged && filterText.getText().trim().length() > 0) { + Tree tree = getViewer().getTree(); + TreeItem item; + if (tree.getSelectionCount() > 0) { + item = getFirstMatchingItem(tree.getSelection()); + } else { + item = getFirstMatchingItem(tree.getItems()); + } + if (item != null) { + tree.setSelection(new TreeItem[] { item }); + ISelection sel = getViewer().getSelection(); + getViewer().setSelection(sel, true); } } } diff --git a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/dialogs/FilteredTree.java b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/dialogs/FilteredTree.java index a14dcc42d1b..b73c461cde7 100644 --- a/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/dialogs/FilteredTree.java +++ b/bundles/org.eclipse.ui.workbench/eclipseui/org/eclipse/ui/dialogs/FilteredTree.java @@ -37,7 +37,6 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; @@ -584,26 +583,23 @@ public void keyPressed(KeyEvent e) { protected void updateTreeSelection(boolean setFocus) { Tree tree = getViewer().getTree(); if (tree.getItemCount() == 0) { - if (setFocus) { - Display.getCurrent().beep(); + return; + } + // if the initial filter text hasn't changed, do not try + // to match + boolean hasFocus = setFocus ? tree.setFocus() : true; + boolean textChanged = !getInitialText().equals(filterText.getText().trim()); + if (hasFocus && textChanged && filterText.getText().trim().length() > 0) { + TreeItem item; + if (tree.getSelectionCount() > 0) { + item = getFirstMatchingItem(tree.getSelection()); + } else { + item = getFirstMatchingItem(tree.getItems()); } - } else { - // if the initial filter text hasn't changed, do not try - // to match - boolean hasFocus = setFocus ? tree.setFocus() : true; - boolean textChanged = !getInitialText().equals(filterText.getText().trim()); - if (hasFocus && textChanged && filterText.getText().trim().length() > 0) { - TreeItem item; - if (tree.getSelectionCount() > 0) { - item = getFirstMatchingItem(tree.getSelection()); - } else { - item = getFirstMatchingItem(tree.getItems()); - } - if (item != null) { - tree.setSelection(new TreeItem[] { item }); - ISelection sel = getViewer().getSelection(); - getViewer().setSelection(sel, true); - } + if (item != null) { + tree.setSelection(new TreeItem[] { item }); + ISelection sel = getViewer().getSelection(); + getViewer().setSelection(sel, true); } } }