diff --git a/libobs-opengl/gl-x11.c b/libobs-opengl/gl-x11.c index 042f87d5f8438481d732cb2be163b62428eae76d..f82adf619d4ec65586b053fde0e74b06ea3695e2 100644 --- a/libobs-opengl/gl-x11.c +++ b/libobs-opengl/gl-x11.c @@ -59,12 +59,7 @@ extern struct gl_windowinfo *gl_windowinfo_create(struct gs_init_data *info) { struct gl_windowinfo *wi = bzalloc(sizeof(struct gl_windowinfo)); wi->id = info->window.id; - /* wi->display = info->window.display; */ - - /* - The above no longer works with Qt. - Let's hope it continues to work. - */ + wi->display = info->window.display; return wi; } diff --git a/obs/CMakeLists.txt b/obs/CMakeLists.txt index 00a25a7c15b1fefd9b640f377a5854bd9f46d9ad..1b71cb0ca7d444d1ba9473959b4939df8ba2d70f 100644 --- a/obs/CMakeLists.txt +++ b/obs/CMakeLists.txt @@ -31,6 +31,8 @@ elseif(APPLE) add_definitions(-fobjc-arc) elseif(UNIX) + find_package(Qt5X11Extras REQUIRED) + set(obs_PLATFORM_SOURCES platform-x11.cpp) @@ -44,6 +46,9 @@ elseif(UNIX) set(obs_PLATFORM_LIBRARIES ${X11_LIBRARIES} ${X11_Xinerama_LIB}) + + set(obs_PLATFORM_QT_MODULES + X11Extras) endif() set(obs_SOURCES @@ -87,7 +92,7 @@ add_executable(obs WIN32 ${obs_UI_HEADERS} ${obs_QRC_SOURCES}) -qt5_use_modules(obs Widgets) +qt5_use_modules(obs Widgets ${obs_PLATFORM_QT_MODULES}) if(WIN32) if(CMAKE_SIZEOF_VOID_P EQUAL 8) diff --git a/obs/qt-wrappers.cpp b/obs/qt-wrappers.cpp index 525c9b16b9fd35ab0b5e534baae43147bf57b439..bd20bfe93e74b55fa4f36131a0a2fae880107a03 100644 --- a/obs/qt-wrappers.cpp +++ b/obs/qt-wrappers.cpp @@ -20,6 +20,10 @@ #include <QWidget> #include <QMessageBox> +#if !defined(_WIN32) && !defined(__APPLE__) +#include <QX11Info> +#endif + static inline void OBSErrorBoxva(QWidget *parent, const char *msg, va_list args) { char full_message[4096]; @@ -44,5 +48,6 @@ void QTToGSWindow(WId windowId, gs_window &gswindow) gswindow.view = (id)windowId; #else gswindow.id = windowId; + gswindow.display = QX11Info::display(); #endif }