godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
88.15k stars 19.96k forks source link

Unpausing game in function called by native FileDialog's signals doesn't work on Windows if game was paused after calling show() on dialog #94309

Closed farfind-gpt closed 3 days ago

farfind-gpt commented 1 month ago

Tested versions

System information

Godot v4.3.beta (97b8ad1af) - Manjaro Linux #1 SMP PREEMPT_DYNAMIC Wed Jun 19 18:55:06 UTC 2024 - X11 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3050 Laptop GPU - AMD Ryzen 7 4800H with Radeon Graphics (16 Threads)

Issue description

On Windows, it isn't possible to unpause (without using await) a game in a function called by native FileDialog's signals (like dir_selected and canceled) if a game was paused after FileDialog's method show was called.

I expect a game will be unpaused like it happens on Linux.

I have tested it with Wine, but my friend with Windows 10 confirms it.

It is possible to unpause a game if it was paused before showing a dialog or if there is await get_tree().process_frame line before unpausing.

Steps to reproduce

  1. Download the MRP
  2. Run it on Linux (it should work fine)
  3. Run it on Windows (a game will be paused after closing a dialog (I've tested exported game, so I don't know what will happen in the Windows editor))

Minimal reproduction project (MRP)

mrp_0.zip

AThousandShips commented 1 month ago

Likely related: