Description
Stop Minimizing on Focus Loss keeps Minecraft from minimizing itself when you alt-tab, click another monitor, or otherwise move focus away from the game while using native fullscreen.
It is a tiny client-side utility mod. Install the artifact that matches your Minecraft version and loader, and the fullscreen window should stay open when focus changes.
## What it does
- Prevents native fullscreen Minecraft windows from auto-minimizing on focus loss.
- Works at the window-system level used by Minecraft's LWJGL backend.
- Reapplies the fix when Minecraft creates the window and when fullscreen mode changes, where the target version exposes those hooks.
## What it does not do
- It does not force Minecraft to stay focused.
- It does not disable pause-on-lost-focus behavior.
- It does not change borderless fullscreen, normal windowed mode, or operating-system window-manager policies.
- It does not restore a window that has already been minimized by something else.
## Minecraft version and mod loader support
On Fabric and Quilt, this mod aims to actively support all Minecraft versions starting from `1.14` to the newest release. Quilt builds are dedicated Quilt ports, not reused Fabric jars.
On Forge, modern GLFW-based ports support `1.13.2`, `1.16.5`, `1.17.x`, `1.18.x`, `1.19.x`, `1.20.1`, and `1.20.6`. Legacy LWJGL2 Forge ports are also available for `1.7.10`, `1.8.9`, and `1.12.x`.
On NeoForge, this mod supports `1.20.1`, `1.20.6`, and versions starting from `1.21` to the newest release.
On LiteLoader, versions `1.7.10`, `1.8.9`, and `1.12.2` are supported. These ports use LWJGL2-specific bytecode patches instead of the modern GLFW window attribute used by newer Minecraft versions.
A Babric port for Minecraft Beta `1.7.3` is also available and uses the same LWJGL2-style approach.
Lastly, a dedicated [Better Than Adventure](https://www.betterthanadventure.net/) port is supported. BTA uses a modified Babric loader, but its fullscreen window path is GLFW-based, so that port behaves more like the modern LWJGL3 versions than the older LWJGL2 ports.
**The mod has zero dependencies. Even the Fabric version does not use Fabric API.**
## Technical details
Modern Minecraft versions use LWJGL3 and GLFW. GLFW has a `GLFW_AUTO_ICONIFY` window attribute which, by default, can minimize a native fullscreen window when it loses focus. The modern ports set that attribute to `GLFW_FALSE` on Minecraft's GLFW window handle:
```java
glfwSetWindowAttrib(windowHandle, GLFW_AUTO_ICONIFY, GLFW_FALSE);
```
Different Minecraft versions expose the native window through different classes, so each target hooks the version-appropriate window class:
- Modern Fabric, Forge, NeoForge, and Quilt builds inject into `com.mojang.blaze3d.platform.Window` after `` and `setMode`.
- Some versions name the native handle field `window`, while others name it `handle`.
- The standalone Forge `1.16.5` port injects into `net.minecraft.client.MainWindow`.
- The BTA Babric port injects into `net.minecraft.client.render.window.GameWindowGLFW` after `init` and `updateWindowState`.
### LWJGL2 ports
Minecraft `b1.7.3`, `1.7.10`, `1.8.9`, and `1.12.x` use LWJGL2, not LWJGL3/GLFW. LWJGL2 does not have `GLFW_AUTO_ICONIFY`, so these ports cannot use the same one-line GLFW fix.
Instead, the LWJGL2 ports patch the relevant Minecraft and LWJGL2 display code directly:
- Forge `1.7.10`, Forge `1.8.9`, Forge `1.12.x`, and LiteLoader ports use LaunchWrapper/FML transformers.
- The Babric Beta `1.7.3` port uses mixins.
- On Linux and other Unix-like LWJGL2 backends, including many BSD systems, the mod patches `org.lwjgl.opengl.LinuxDisplay` to skip the fullscreen focus-loss iconify path.
- On Windows, the mod patches `org.lwjgl.opengl.WindowsDisplay` to skip the fullscreen focus-loss minimize/display-mode-reset path.
- On affected Minecraft versions such as `1.7.10`, `1.8.9`, `1.12.2`, and Beta `b1.7.3`, the mod also suppresses Minecraft's own lost-focus fullscreen toggle logic.
macOS is the main limitation for LWJGL2 builds. The relevant fullscreen behavior is handled through LWJGL2's native Cocoa backend rather than patchable Java-side display code. Because of that, LWJGL2 macOS support may be limited compared to Linux, Windows, and Unix-like systems. The modern LWJGL3/GLFW ports do not have this same limitation.