diff --git a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java index 298e463e98..250a5a5b9a 100644 --- a/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java +++ b/runelite-client/src/main/java/net/runelite/client/callback/Hooks.java @@ -33,7 +33,6 @@ import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.Image; import java.awt.RenderingHints; -import java.awt.event.FocusEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent; @@ -43,7 +42,6 @@ import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.GraphicsObject; import net.runelite.api.ItemComposition; -import net.runelite.api.KeyFocusListener; import net.runelite.api.MainBufferProvider; import net.runelite.api.MenuAction; import net.runelite.api.MessageNode; @@ -54,7 +52,6 @@ import net.runelite.api.TextureProvider; import net.runelite.api.WorldMapManager; import net.runelite.api.coords.LocalPoint; import net.runelite.api.events.ChatMessage; -import net.runelite.api.events.FocusChanged; import net.runelite.api.events.GameTick; import net.runelite.api.events.GraphicsObjectCreated; import net.runelite.api.events.MenuOptionClicked; @@ -240,14 +237,6 @@ public class Hooks keyManager.processKeyTyped(keyEvent); } - public static void focusLost(KeyFocusListener l, FocusEvent focusEvent) - { - FocusChanged focusChanged = new FocusChanged(); - focusChanged.setFocused(false); - - eventBus.post(focusChanged); - } - public static void draw(MainBufferProvider mainBufferProvider, Graphics graphics, int x, int y) { if (graphics == null) diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSKeyFocusListenerMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSKeyFocusListenerMixin.java index 3144bcecfb..bd2bcab407 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSKeyFocusListenerMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSKeyFocusListenerMixin.java @@ -24,11 +24,16 @@ */ package net.runelite.mixins; +import java.awt.event.FocusEvent; import java.awt.event.KeyEvent; +import net.runelite.api.events.FocusChanged; import net.runelite.api.mixins.Copy; +import net.runelite.api.mixins.Inject; +import net.runelite.api.mixins.MethodHook; import net.runelite.api.mixins.Mixin; import net.runelite.api.mixins.Replace; import net.runelite.client.callback.Hooks; +import static net.runelite.client.callback.Hooks.eventBus; import net.runelite.rs.api.RSKeyFocusListener; @Mixin(RSKeyFocusListener.class) @@ -75,4 +80,13 @@ public abstract class RSKeyFocusListenerMixin implements RSKeyFocusListener rs$keyTyped(keyEvent); } } + + @Inject + @MethodHook("focusLost") + public void onFocusLost(FocusEvent focusEvent) + { + final FocusChanged focusChanged = new FocusChanged(); + focusChanged.setFocused(false); + eventBus.post(focusChanged); + } } \ No newline at end of file