diff --git a/src/gui/macutilities.mm b/src/gui/macutilities.mm index e9ca0fe5a..823a1daa9 100644 --- a/src/gui/macutilities.mm +++ b/src/gui/macutilities.mm @@ -106,7 +106,15 @@ namespace MacUtils for (const auto &path : pathList) [pathURLs addObject:[NSURL fileURLWithPath:path.toString().toNSString()]]; - [[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:pathURLs]; + // In some unknown way, the next line affects Qt's main loop causing the crash + // in QApplication::exec() on processing next event after this call. + // Even crash doesn't happen exactly after this call, it will happen on + // application exit. Call stack and disassembly are the same in all cases. + // But running it in another thread (aka in background) solves the issue. + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^ + { + [[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:pathURLs]; + }); } }