diff options
Diffstat (limited to 'src/plugins')
6 files changed, 28 insertions, 4 deletions
diff --git a/src/plugins/platforms/eglfs/api/qeglfsintegration.cpp b/src/plugins/platforms/eglfs/api/qeglfsintegration.cpp index 8b751a72bf..9a0be489a8 100644 --- a/src/plugins/platforms/eglfs/api/qeglfsintegration.cpp +++ b/src/plugins/platforms/eglfs/api/qeglfsintegration.cpp @@ -92,6 +92,10 @@ #include <QtInputSupport/private/qtslib_p.h> #endif +#if QT_CONFIG(integrityhid) +#include <QtInputSupport/qintegrityhidmanager.h> +#endif + #include <QtPlatformHeaders/qeglfsfunctions.h> static void initResources() @@ -466,6 +470,10 @@ void QEglFSIntegration::createInputHandlers() #endif new QEvdevTouchManager(QLatin1String("EvdevTouch"), QString() /* spec */, this); #endif + +#if QT_CONFIG(integrityhid) + new QIntegrityHIDManager("HID", "", this); +#endif } EGLNativeDisplayType QEglFSIntegration::nativeDisplay() const diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp index 43bdb77a18..3af21d768e 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.cpp @@ -56,6 +56,13 @@ QEglFSKmsEglDeviceIntegration::QEglFSKmsEglDeviceIntegration() qCDebug(qLcEglfsKmsDebug, "New DRM/KMS on EGLDevice integration created"); } +QSurfaceFormat QEglFSKmsEglDeviceIntegration::surfaceFormatFor(const QSurfaceFormat &inputFormat) const +{ + QSurfaceFormat format = QEglFSKmsIntegration::surfaceFormatFor(inputFormat); + format.setAlphaBufferSize(8); + return format; +} + EGLint QEglFSKmsEglDeviceIntegration::surfaceType() const { return EGL_STREAM_BIT_KHR; diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.h b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.h index 62404cfcd1..5819d82ebf 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.h +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.h @@ -55,6 +55,7 @@ class QEglFSKmsEglDeviceIntegration : public QEglFSKmsIntegration public: QEglFSKmsEglDeviceIntegration(); + QSurfaceFormat surfaceFormatFor(const QSurfaceFormat &inputFormat) const override; EGLint surfaceType() const override; EGLDisplay createDisplay(EGLNativeDisplayType nativeDisplay) override; bool supportsSurfacelessContexts() const override; diff --git a/src/plugins/platforms/windows/qwindowskeymapper.cpp b/src/plugins/platforms/windows/qwindowskeymapper.cpp index 2f459b70ec..c2d7632e89 100644 --- a/src/plugins/platforms/windows/qwindowskeymapper.cpp +++ b/src/plugins/platforms/windows/qwindowskeymapper.cpp @@ -977,8 +977,7 @@ bool QWindowsKeyMapper::translateKeyEventInternal(QWindow *window, const MSG &ms state = state ^ Qt::ShiftModifier; else if (code == Qt::Key_Alt) state = state ^ Qt::AltModifier; - else if (code == 0 && modifiersIndex != 0) - code = keyLayout[vk_key].qtKey[0]; + // If the bit 24 of lParm is set you received a enter, // otherwise a Return. (This is the extended key bit) if ((code == Qt::Key_Return) && (msg.lParam & 0x1000000)) diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp index 7451090cbf..1a360239c3 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.cpp +++ b/src/plugins/platforms/xcb/qxcbwindow.cpp @@ -156,6 +156,14 @@ QXcbScreen *QXcbWindow::parentScreen() return parent() ? static_cast<QXcbWindow*>(parent())->parentScreen() : xcbScreen(); } +//QPlatformWindow::screenForGeometry version that uses deviceIndependentGeometry +QXcbScreen *QXcbWindow::initialScreen() const +{ + QWindowPrivate *windowPrivate = qt_window_private(window()); + QScreen *screen = windowPrivate->screenForGeometry(window()->geometry()); + return static_cast<QXcbScreen*>(screen->handle()); +} + // Returns \c true if we should set WM_TRANSIENT_FOR on \a w static inline bool isTransient(const QWindow *w) { @@ -356,8 +364,8 @@ void QXcbWindow::create() Qt::WindowType type = window()->type(); QXcbScreen *currentScreen = xcbScreen(); - QRect rect = windowGeometry(); - QXcbScreen *platformScreen = parent() ? parentScreen() : static_cast<QXcbScreen*>(screenForGeometry(rect)); + QXcbScreen *platformScreen = parent() ? parentScreen() : initialScreen(); + QRect rect = QHighDpi::toNativePixels(window()->geometry(), platformScreen); if (type == Qt::Desktop) { m_window = platformScreen->root(); diff --git a/src/plugins/platforms/xcb/qxcbwindow.h b/src/plugins/platforms/xcb/qxcbwindow.h index 3e539337b1..5e09865d33 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.h +++ b/src/plugins/platforms/xcb/qxcbwindow.h @@ -191,6 +191,7 @@ protected: QXcbScreen *parentScreen(); + QXcbScreen *initialScreen() const; void changeNetWmState(bool set, xcb_atom_t one, xcb_atom_t two = 0); NetWmStates netWmStates(); void setNetWmStates(NetWmStates); |