From 0a8881a9cf6665131d159c26586ae9467ea7fe2e Mon Sep 17 00:00:00 2001 From: crschnick Date: Fri, 8 Dec 2023 03:03:19 +0000 Subject: [PATCH] Listen for cancel shortcuts in alerts, for #110 --- .../java/io/xpipe/app/core/AppMainWindow.java | 7 +++---- .../java/io/xpipe/app/core/AppWindowHelper.java | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/xpipe/app/core/AppMainWindow.java b/app/src/main/java/io/xpipe/app/core/AppMainWindow.java index 58fe6fb48..3dd2247cb 100644 --- a/app/src/main/java/io/xpipe/app/core/AppMainWindow.java +++ b/app/src/main/java/io/xpipe/app/core/AppMainWindow.java @@ -1,6 +1,5 @@ package io.xpipe.app.core; -import io.xpipe.app.core.mode.OperationMode; import io.xpipe.app.fxcomps.Comp; import io.xpipe.app.issue.ErrorEvent; import io.xpipe.app.issue.TrackEvent; @@ -260,11 +259,11 @@ public class AppMainWindow { contentR.prefWidthProperty().bind(stage.getScene().widthProperty()); contentR.prefHeightProperty().bind(stage.getScene().heightProperty()); - if (OsType.getLocal().equals(OsType.LINUX)) { + if (OsType.getLocal().equals(OsType.LINUX) || OsType.getLocal().equals(OsType.MACOS)) { stage.getScene().addEventFilter(KeyEvent.KEY_PRESSED, event -> { - if (event.getCode().equals(KeyCode.W) && event.isControlDown()) { + if (event.getCode().equals(KeyCode.W) && event.isShortcutDown()) { + AppPrefs.get().closeBehaviour().getValue().run(); event.consume(); - OperationMode.close(); } }); } diff --git a/app/src/main/java/io/xpipe/app/core/AppWindowHelper.java b/app/src/main/java/io/xpipe/app/core/AppWindowHelper.java index d01cf4728..5e997c399 100644 --- a/app/src/main/java/io/xpipe/app/core/AppWindowHelper.java +++ b/app/src/main/java/io/xpipe/app/core/AppWindowHelper.java @@ -4,6 +4,7 @@ import io.xpipe.app.comp.base.LoadingOverlayComp; import io.xpipe.app.fxcomps.Comp; import io.xpipe.app.issue.TrackEvent; import io.xpipe.app.util.ThreadHelper; +import io.xpipe.core.process.OsType; import javafx.application.Platform; import javafx.beans.value.ObservableValue; import javafx.geometry.Insets; @@ -119,6 +120,20 @@ public class AppWindowHelper { s.setMaxHeight(rectangle2D.getHeight()); }); }); + a.getDialogPane().getScene().addEventFilter(KeyEvent.KEY_PRESSED, event -> { + if (OsType.getLocal().equals(OsType.LINUX) || OsType.getLocal().equals(OsType.MACOS)) { + if (event.getCode().equals(KeyCode.W) && event.isShortcutDown()) { + s.close(); + event.consume(); + return; + } + } + + if (event.getCode().equals(KeyCode.ESCAPE)) { + s.close(); + event.consume(); + } + }); return a; };