mirror of
https://invent.kde.org/network/krfb
synced 2024-07-03 00:18:36 +00:00
Port framebuffers away from deprecated QDesktopWidget
Use QPlatformNativeInterface to get the WId instead
This commit is contained in:
parent
b7a2db5c71
commit
ba75f0d7ed
|
@ -20,6 +20,7 @@ add_library(krfb_framebuffer_xcb MODULE ${krfb_framebuffer_xcb_SRCS})
|
||||||
target_link_libraries (krfb_framebuffer_xcb
|
target_link_libraries (krfb_framebuffer_xcb
|
||||||
Qt5::Core
|
Qt5::Core
|
||||||
Qt5::Gui
|
Qt5::Gui
|
||||||
|
Qt::GuiPrivate
|
||||||
XCB::XCB
|
XCB::XCB
|
||||||
XCB::RENDER
|
XCB::RENDER
|
||||||
XCB::SHAPE
|
XCB::SHAPE
|
||||||
|
|
|
@ -20,10 +20,10 @@
|
||||||
|
|
||||||
#include <QX11Info>
|
#include <QX11Info>
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QDesktopWidget>
|
|
||||||
#include <QGuiApplication>
|
#include <QGuiApplication>
|
||||||
#include <QScreen>
|
#include <QScreen>
|
||||||
#include <QAbstractNativeEventFilter>
|
#include <QAbstractNativeEventFilter>
|
||||||
|
#include <qpa/qplatformnativeinterface.h>
|
||||||
|
|
||||||
|
|
||||||
class KrfbXCBEventFilter: public QAbstractNativeEventFilter
|
class KrfbXCBEventFilter: public QAbstractNativeEventFilter
|
||||||
|
@ -159,12 +159,13 @@ XCBFrameBuffer::XCBFrameBuffer(QObject *parent):
|
||||||
d->area.setRect(0, 0, 0, 0);
|
d->area.setRect(0, 0, 0, 0);
|
||||||
d->x11EvtFilter = new KrfbXCBEventFilter(this);
|
d->x11EvtFilter = new KrfbXCBEventFilter(this);
|
||||||
d->rootScreen = get_xcb_screen(QX11Info::connection(), QX11Info::appScreen());
|
d->rootScreen = get_xcb_screen(QX11Info::connection(), QX11Info::appScreen());
|
||||||
d->win = QApplication::desktop()->winId();
|
|
||||||
|
|
||||||
this->fb = nullptr;
|
this->fb = nullptr;
|
||||||
|
|
||||||
QScreen *primaryScreen = QGuiApplication::primaryScreen();
|
QScreen *primaryScreen = QGuiApplication::primaryScreen();
|
||||||
if (primaryScreen) {
|
if (primaryScreen) {
|
||||||
|
QPlatformNativeInterface* native = qApp->platformNativeInterface();
|
||||||
|
d->win = reinterpret_cast<WId>(native->nativeResourceForScreen(QByteArrayLiteral("rootwindow"), primaryScreen));
|
||||||
qreal scaleFactor = primaryScreen->devicePixelRatio();
|
qreal scaleFactor = primaryScreen->devicePixelRatio();
|
||||||
d->area = { primaryScreen->geometry().topLeft() * scaleFactor,
|
d->area = { primaryScreen->geometry().topLeft() * scaleFactor,
|
||||||
primaryScreen->geometry().bottomRight() * scaleFactor };
|
primaryScreen->geometry().bottomRight() * scaleFactor };
|
||||||
|
|
Loading…
Reference in New Issue
Block a user