Skip to content

Commit 646dcde

Browse files
committed
attempt to fix keyboard focus issues (failed)
1 parent 0d44bc2 commit 646dcde

2 files changed

Lines changed: 9 additions & 2 deletions

File tree

splitscreen/src/main/java/dev/isxander/splitscreen/client/LocalSplitscreenPawn.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class LocalSplitscreenPawn implements SplitscreenPawn {
2222
private final int index;
2323
private final InputMethod associatedInputMethod;
2424

25-
protected byte[] nonce;
25+
protected byte @Nullable [] nonce;
2626

2727
public LocalSplitscreenPawn(Minecraft minecraft, int index, InputMethod associatedInputMethod) {
2828
this.minecraft = minecraft;
@@ -90,7 +90,7 @@ public boolean isRemote() {
9090
return false;
9191
}
9292

93-
public byte[] getLastLoginNonce() {
93+
public byte @Nullable [] getLastLoginNonce() {
9494
return nonce;
9595
}
9696

splitscreen/src/main/java/dev/isxander/splitscreen/client/mixins/engine/reparent/InputConstantsMixin.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
55
import com.mojang.blaze3d.platform.InputConstants;
66
import dev.isxander.splitscreen.client.SplitscreenBootstrapper;
7+
import dev.isxander.splitscreen.client.engine.impl.reparenting.wm.NativeWindowHandle;
8+
import dev.isxander.splitscreen.client.engine.impl.reparenting.wm.WindowManager;
79
import org.spongepowered.asm.mixin.Mixin;
810

911
@Mixin(InputConstants.class)
@@ -17,6 +19,11 @@ private static void shouldAllowMouseGrab(long window, int cursorValue, double xP
1719
if (SplitscreenBootstrapper.getController()
1820
.map(c -> c.getLocalPawn().getAssociatedInputMethod().isKeyboardAndMouse())
1921
.orElse(false) || !SplitscreenBootstrapper.isSplitscreen()) {
22+
WindowManager windowManager = WindowManager.get();
23+
NativeWindowHandle nativeWindowHandle = windowManager.getNativeWindowHandle(window);
24+
windowManager.setWindowFocused(nativeWindowHandle);
25+
windowManager.setWindowForeground(nativeWindowHandle);
26+
2027
original.call(window, cursorValue, xPos, yPos);
2128
}
2229
}

0 commit comments

Comments
 (0)