mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-24 23:31:36 +08:00
frontend: Fix UI deadlock
There is a Qt bug introduced around Qt 6.8.3 that causes the application to hang when double clicking the sources list and the Windows setting 'Snap mouse to default button in dialog boxes' is enabled. Work around this by using a timer if the setting is enabled.
This commit is contained in:
@@ -11,6 +11,11 @@
|
||||
|
||||
#include "plugin-manager/PluginManager.hpp"
|
||||
|
||||
#ifdef _WIN32
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#include "moc_SourceTreeItem.cpp"
|
||||
|
||||
static inline OBSScene GetCurrentScene()
|
||||
@@ -280,7 +285,22 @@ void SourceTreeItem::mouseDoubleClickEvent(QMouseEvent *event)
|
||||
obs_source_t *source = obs_sceneitem_get_source(sceneitem);
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
if (obs_source_configurable(source)) {
|
||||
#if defined(_WIN32)
|
||||
/* This timer works around a bug introduced around Qt 6.8.3 that causes
|
||||
* the application to hang when double clicking the sources list and the
|
||||
* Windows setting 'Snap mouse to default button in dialog boxes' is enabled.
|
||||
*/
|
||||
bool snapEnabled;
|
||||
SystemParametersInfo(SPI_GETSNAPTODEFBUTTON, 0, &snapEnabled, 0);
|
||||
|
||||
if (snapEnabled) {
|
||||
QTimer::singleShot(200, this, [=]() { main->CreatePropertiesWindow(source); });
|
||||
} else {
|
||||
main->CreatePropertiesWindow(source);
|
||||
}
|
||||
#else
|
||||
main->CreatePropertiesWindow(source);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user