2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-09-01 06:55:58 +00:00

Disable xcb_xlib

This commit is contained in:
Ilya Fedin
2023-03-31 23:33:42 +04:00
committed by John Preston
parent a529932556
commit d1ff6e583d
2 changed files with 23 additions and 0 deletions

View File

@@ -54,12 +54,20 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include <unistd.h>
#include <dirent.h>
#include <pwd.h>
#include <dlfcn.h>
#include <iostream>
using namespace Platform;
using Platform::internal::WaylandIntegration;
#ifndef DESKTOP_APP_DISABLE_X11_INTEGRATION
typedef struct _XDisplay Display;
struct XErrorEvent;
typedef int (*XErrorHandler)(Display*, XErrorEvent*);
typedef XErrorHandler (*LPXSETERRORHANDLER)(XErrorHandler);
#endif // !DESKTOP_APP_DISABLE_X11_INTEGRATION
#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION
typedef GApplication TDesktopApplication;
typedef GApplicationClass TDesktopApplicationClass;
@@ -877,6 +885,20 @@ void start() {
LOG(("Icon theme: %1").arg(QIcon::themeName()));
LOG(("Fallback icon theme: %1").arg(QIcon::fallbackThemeName()));
#ifndef DESKTOP_APP_DISABLE_X11_INTEGRATION
// tdesktop doesn't use xlib by itself,
// but some libraries it depends on may do
const auto XSetErrorHandler = reinterpret_cast<LPXSETERRORHANDLER>(
dlsym(RTLD_DEFAULT, "XSetErrorHandler"));
// Reset errors if any
(void) dlerror();
if (XSetErrorHandler) {
XSetErrorHandler([](Display *dpy, XErrorEvent *err) { return 0; });
}
#endif // !DESKTOP_APP_DISABLE_X11_INTEGRATION
#ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION
InstallLauncher();
LaunchGApplication();