diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2022-03-04 11:33:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-04 11:33:53 +0100 |
commit | b21e2ec746e8f7b7a3ac6a4d3700a1f4218a910c (patch) | |
tree | 01678a3bbde87c426dc1b6ae83ddb18659c863b4 /platform/osx/os_osx.mm | |
parent | a3d54f9d1388c6fd644258ccf821cf969c60b11c (diff) | |
parent | a9808d9d7adf7c98db362b3dcc4c85e1e8542977 (diff) |
Merge pull request #58738 from bruvzg/mac_resize_crash
[macOS] Disable window redraw during resize, when rendering in the separate thread.
Diffstat (limited to 'platform/osx/os_osx.mm')
-rw-r--r-- | platform/osx/os_osx.mm | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index 6700f8fe82..7e0cf9f9cc 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -58,7 +58,8 @@ _FORCE_INLINE_ String OS_OSX::get_framework_executable(const String &p_path) { void OS_OSX::pre_wait_observer_cb(CFRunLoopObserverRef p_observer, CFRunLoopActivity p_activiy, void *p_context) { // Prevent main loop from sleeping and redraw window during resize / modal popups. - if (get_singleton()->get_main_loop()) { + DisplayServerOSX *ds = (DisplayServerOSX *)DisplayServer::get_singleton(); + if (get_singleton()->get_main_loop() && ds && (get_singleton()->get_render_thread_mode() != RENDER_SEPARATE_THREAD || !ds->get_is_resizing())) { Main::force_redraw(); if (!Main::is_iterating()) { // Avoid cyclic loop. Main::iteration(); |