godotengine / godotengine/godot
Combinations of Window.Flags and mouse_passthrough/mouse_passthrough Polygon lead to unexpected behaviour.
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
Reproducible in 4.2.1
### System information
Windows 10, GTX 3050, Both Compatibility and Forward+
### Issue description
Different combinations of Flags and mouse_passthrough settings on Window leads to a number of weird unexpected behaviour.
Specifically a few I've found with some help :
- If both unfocusable and borderless are enabled unfocusable is seemingly ignored.
- Setting unfocusable to true too fast pauses the program at the Splash Screen
- Setting transparent to true too fast causes the background to be tinted white.
- Windows with unfocusable are unable to be alt tabbed to, seemingly meaning there's no way to close it without task manager. (possibly intended?)
### Steps to reproduce
1. Access the root window or Add one to a Scene
2. Mess with combinations of different Flags as well as when they're set.
3. Run into one of the listed outcomes
---
With the MRP
1. Run the Main Scene (Test Input)
2. Hit either ui_accept to toggle unfocusable and transparent. Or ui_cancel to toggle borderless.
3. Run into the listed runtime issues.
---
Or to test _ready
1. Run Test Ready
2. It should stay on the splash screen.
3. Uncomment different flags in test ready.gd
4. Repeat for different outcomes.
### Minimal reproduction project (MRP)
[Transparent Clickthrough Test.zip](https://github.com/godotengine/godot/files/14863147/Transparent.Clickthrough.Test.zip)
Contributor guide
Research direction
Start by running the linked Minimal Reproduction Project, using the Main Scene (Test Input) and Test Ready with the relevant lines in test ready.gd uncommented. Reproduce the unfocusable, transparent, borderless, and splash-screen behaviors across the described combinations and timing. Done means the affected combinations have defined, reproducible behavior and the reported unexpected outcomes are resolved or documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100