mirror of https://github.com/cutefishos/dock
fix(dock): port dock to Qt6
parent
3a9bcf3acb
commit
6df50a5887
@ -0,0 +1,47 @@
|
||||
/* Qt 6 compatibility layer for the legacy QX11Info API. */
|
||||
#ifndef CUTEFISH_QX11INFO_COMPAT
|
||||
#define CUTEFISH_QX11INFO_COMPAT
|
||||
|
||||
#include <QGuiApplication>
|
||||
#include <QtGui/qguiapplication_platform.h>
|
||||
#include <xcb/xcb.h>
|
||||
|
||||
class QX11Info
|
||||
{
|
||||
public:
|
||||
static bool isPlatformX11()
|
||||
{
|
||||
return nativeInterface() != nullptr;
|
||||
}
|
||||
|
||||
static xcb_connection_t *connection()
|
||||
{
|
||||
const auto native = nativeInterface();
|
||||
return native ? native->connection() : nullptr;
|
||||
}
|
||||
|
||||
static Display *display()
|
||||
{
|
||||
const auto native = nativeInterface();
|
||||
return native ? native->display() : nullptr;
|
||||
}
|
||||
|
||||
static xcb_window_t appRootWindow()
|
||||
{
|
||||
xcb_connection_t *c = connection();
|
||||
if (!c)
|
||||
return XCB_WINDOW_NONE;
|
||||
|
||||
const xcb_setup_t *setup = xcb_get_setup(c);
|
||||
const xcb_screen_iterator_t iterator = xcb_setup_roots_iterator(setup);
|
||||
return iterator.data ? iterator.data->root : XCB_WINDOW_NONE;
|
||||
}
|
||||
|
||||
private:
|
||||
static QNativeInterface::QX11Application *nativeInterface()
|
||||
{
|
||||
return qGuiApp ? qGuiApp->nativeInterface<QNativeInterface::QX11Application>() : nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
Loading…
Reference in New Issue