godotengine / godotengine/godot

Combinations of Window.Flags and mouse_passthrough/mouse_passthrough Polygon lead to unexpected behaviour.

Open
#90,195 1 comment 0 reactions 0 assignees View on GitHub
bug topic:platforms
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.