forked from github_mirror/framelesshelper
linux: fix potential segment faults
Fixes: #199 Signed-off-by: Yuhang Zhao <2546789017@qq.com>
This commit is contained in:
parent
a23438b02b
commit
69ef2a6ca1
|
@ -56,6 +56,18 @@
|
|||
// This one is not included in any public headers.
|
||||
using Display = struct _XDisplay;
|
||||
|
||||
#ifndef FRAMELESSHELPER_HAS_XLIB
|
||||
extern "C"
|
||||
{
|
||||
|
||||
FRAMELESSHELPER_CORE_API int
|
||||
XInitThreads(
|
||||
void
|
||||
);
|
||||
|
||||
} // extern "C"
|
||||
#endif // FRAMELESSHELPER_HAS_XLIB
|
||||
|
||||
#if __has_include(<xcb/xcb.h>)
|
||||
# include <xcb/xcb.h>
|
||||
# define FRAMELESSHELPER_HAS_XCB
|
||||
|
|
|
@ -85,6 +85,7 @@ Q_DECLARE_METATYPE2(FRAMELESSHELPER_PREPEND_NAMESPACE(SysApiLoader))
|
|||
#endif // Q_OS_WINDOWS
|
||||
|
||||
#ifdef Q_OS_LINUX
|
||||
# define API_XLIB_AVAILABLE(func) API_AVAILABLE(libX11, func)
|
||||
# define API_XCB_AVAILABLE(func) API_AVAILABLE(libxcb, func)
|
||||
# define API_GTK_AVAILABLE(func) API_AVAILABLE(libgtk, func)
|
||||
#endif // Q_OS_LINUX
|
||||
|
|
|
@ -174,6 +174,7 @@ void initialize()
|
|||
// enough, that is, before the construction of any Q(Gui)Application
|
||||
// instances. QCoreApplication won't instantiate the platform plugin.
|
||||
qputenv(QT_QPA_ENV_VAR, kxcb);
|
||||
XInitThreads();
|
||||
gtk_init(nullptr, nullptr);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -25,6 +25,28 @@
|
|||
#include "framelesshelper_linux.h"
|
||||
#include "sysapiloader_p.h"
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// Xlib
|
||||
|
||||
#ifndef FRAMELESSHELPER_HAS_XLIB
|
||||
|
||||
FRAMELESSHELPER_STRING_CONSTANT(libX11)
|
||||
|
||||
FRAMELESSHELPER_STRING_CONSTANT(XInitThreads)
|
||||
|
||||
extern "C" int
|
||||
XInitThreads(
|
||||
void
|
||||
)
|
||||
{
|
||||
if (!API_XLIB_AVAILABLE(XInitThreads)) {
|
||||
return 0;
|
||||
}
|
||||
return API_CALL_FUNCTION(XInitThreads);
|
||||
}
|
||||
|
||||
#endif // FRAMELESSHELPER_HAS_XLIB
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// XCB
|
||||
|
||||
|
|
Loading…
Reference in New Issue