diff --git a/CHANGELOG.md b/CHANGELOG.md index 861471f2d69..3ec700f0db9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,8 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv ### Fixed +- We fixed an issue where pressing ESC in the preferences dialog would not always close the dialog. [#8888](https://github.com/JabRef/jabref/issues/8888) + ### Removed ## [6.0-alpha.3] – 2025-10-30 diff --git a/jabgui/src/main/java/org/jabref/gui/preferences/PreferencesDialogView.java b/jabgui/src/main/java/org/jabref/gui/preferences/PreferencesDialogView.java index 9ffc9f0a9a3..f7a6950218c 100644 --- a/jabgui/src/main/java/org/jabref/gui/preferences/PreferencesDialogView.java +++ b/jabgui/src/main/java/org/jabref/gui/preferences/PreferencesDialogView.java @@ -7,8 +7,12 @@ import javafx.scene.control.ButtonType; import javafx.scene.control.ListView; import javafx.scene.control.ScrollPane; +import javafx.scene.control.TableView; import javafx.scene.control.ToggleButton; +import javafx.scene.control.TreeTableView; +import javafx.scene.control.TreeView; import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyEvent; import org.jabref.gui.DialogService; import org.jabref.gui.icon.IconTheme; @@ -93,6 +97,14 @@ private void initialize() { preferencesContainer.setContent(preferencesTab.getBuilder()); preferencesTab.prefWidthProperty().bind(preferencesContainer.widthProperty().subtract(10d)); preferencesTab.getStyleClass().add("preferencesTab"); + this.getDialogPane().addEventFilter(KeyEvent.KEY_PRESSED, event -> { + if (preferences.getKeyBindingRepository().checkKeyCombinationEquality(KeyBinding.CLOSE, event)) { + if (event.getTarget() instanceof ListView || event.getTarget() instanceof TableView || event.getTarget() instanceof TreeView || event.getTarget() instanceof TreeTableView) { + this.closeDialog(); + event.consume(); + } + } + }); } else { preferencesContainer.setContent(null); }