[macOS] Mouse cursor and click offset when launching in Full Screen (frame-state="6" conflict)
- Dominant language
- Java
- Stars
- 3.1k
- Forks
- 935
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 17
Description
### Apache NetBeans version
Apache NetBeans 30
### What happened
### Description
When closing NetBeans while in macOS native Full Screen mode, the IDE saves an invalid window state (`frame-state="6"`) in the local configuration files. Upon the next launch, a coordinate mapping conflict occurs between the Java Swing/AWT frame management (`Frame.MAXIMIZED_BOTH`) and the macOS Full Screen Space manager. This results in a severe vertical/horizontal mouse coordinate and click offset across the entire UI.
---
### Environment
* **OS:** macOS (Apple Silicon M1/M2/M3)
* **NetBeans Version:** Apache NetBeans 26, 28, 29, 30
* **JDK:** Java 21+
---
### Root Cause Analysis
The issue originates in the window manager persistence file:
`~/Library/Application Support/NetBeans//config/Windows2Local/WindowManager.wswmgr`
1. **Working State (`frame-state="0"`):**
When NetBeans starts with `frame-state="0"`, window coordinates yield properly to macOS window management. Entering Full Screen mode manually works as expected with accurate mouse tracking.
2. **Corrupted State (`frame-state="6"`):**
Closing NetBeans while in macOS Full Screen mode writes `frame-state="6"` (`Frame.MAXIMIZED_BOTH`). On subsequent launches, Swing attempts to apply software-maximized geometry inside the native macOS Space, breaking the UI click matrix.
---
### Steps to Reproduce
1. Open Apache NetBeans on macOS.
2. Enter native macOS Full Screen mode (`Control + Cmd + F`).
3. Quit NetBeans (`Cmd + Q`) while still in Full Screen.
4. Relaunch NetBeans.
5. **Result:** The UI renders, but mouse clicks register with a offset relative to the visual cursor position.
---
### Temporary Workaround
Set the file permissions to read-only on `WindowManager.wswmgr` after ensuring `frame-state="0"` is present:
```bash
chmod 444 "$HOME/Library/Application Support/NetBeans//config/Windows2Local/WindowManager.wswmgr"
```
### Language / Project Type / NetBeans Component
_No response_
### How to reproduce
### Steps to Reproduce
1. Open Apache NetBeans on macOS.
2. Enter native macOS Full Screen mode (`Control + Cmd + F`).
3. Quit NetBeans (`Cmd + Q`) while still in Full Screen.
4. Relaunch NetBeans.
5. **Result:** The UI renders, but mouse clicks register with a offset relative to the visual cursor position.
### Did this work correctly in an earlier version?
Apache NetBeans 26 or earlier
### Operating System
macOS
### JDK
SDK 26
### Apache NetBeans packaging
Apache NetBeans binary zip
### Anything else
### Temporary Workaround
Set the file permissions to read-only on `WindowManager.wswmgr` after ensuring `frame-state="0"` is present:
```bash
chmod 444 "$HOME/Library/Application Support/NetBeans//config/Windows2Local/WindowManager.wswmgr"
```
### Are you willing to submit a pull request?
No
Contributor guide
Research direction
Reproduce the issue on macOS using the listed full-screen and relaunch steps, then inspect the WindowManager.wswmgr file under the NetBeans configuration directory, especially the frame-state value. Done means quitting in native Full Screen no longer causes a cursor or click offset after relaunch, without requiring the read-only workaround.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, macos
- Domain
- desktop, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100