From 1b01320c1de2b349b930b8e8ade2d749047ff65a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beatrice=20Dellac=C3=A0?= Date: Thu, 1 Oct 2026 22:39:10 +0200 Subject: [PATCH] register the native hook only once --- src/main/java/wtf/beatrice/autosqueal/Main.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/wtf/beatrice/autosqueal/Main.java b/src/main/java/wtf/beatrice/autosqueal/Main.java index b3f3b0b..e5d8170 100644 --- a/src/main/java/wtf/beatrice/autosqueal/Main.java +++ b/src/main/java/wtf/beatrice/autosqueal/Main.java @@ -15,6 +15,9 @@ public class Main { private static final Logger LOGGER = LogManager.getLogger(Main.class); private static final MainWindow mainWindow = new MainWindow(); + /** Whether the hook and its listener are registered, so retries don't add duplicates. */ + private static boolean hookRegistered = false; + public static void main(String[] args) { LOGGER.info("Hello world!"); @@ -39,10 +42,15 @@ public class Main { } public static boolean registerJNativeHook() { + if (hookRegistered) { + return true; + } + LOGGER.info("Registering jnativehook library..."); try { GlobalScreen.registerNativeHook(); GlobalScreen.addNativeKeyListener(new KeyPressListener()); + hookRegistered = true; LOGGER.info("Successfully registered jnativehook library!"); return true; }