diff options
Diffstat (limited to 'src/plugins/platforms/eglfs/qeglfsscreen.cpp')
-rw-r--r-- | src/plugins/platforms/eglfs/qeglfsscreen.cpp | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/src/plugins/platforms/eglfs/qeglfsscreen.cpp b/src/plugins/platforms/eglfs/qeglfsscreen.cpp index 62f764b392..3f92d60aa2 100644 --- a/src/plugins/platforms/eglfs/qeglfsscreen.cpp +++ b/src/plugins/platforms/eglfs/qeglfsscreen.cpp @@ -44,18 +44,32 @@ #include "qeglfswindow.h" #include "qeglfshooks.h" +#if !defined(QT_NO_EVDEV) && (!defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_NO_SDK)) +#include <QtPlatformSupport/private/qdevicediscovery_p.h> +#endif + QT_BEGIN_NAMESPACE QEglFSScreen::QEglFSScreen(EGLDisplay dpy) - : m_dpy(dpy) - , m_surface(EGL_NO_SURFACE) - , m_cursor(0) + : m_dpy(dpy), + m_surface(EGL_NO_SURFACE), + m_cursor(0), + m_rootContext(0) { #ifdef QEGL_EXTRA_DEBUG qWarning("QEglScreen %p\n", this); #endif - static int hideCursor = qgetenv("QT_QPA_EGLFS_HIDECURSOR").toInt(); + QByteArray hideCursorVal = qgetenv("QT_QPA_EGLFS_HIDECURSOR"); + bool hideCursor = false; + if (hideCursorVal.isEmpty()) { +#if !defined(QT_NO_EVDEV) && (!defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_NO_SDK)) + QScopedPointer<QDeviceDiscovery> dis(QDeviceDiscovery::create(QDeviceDiscovery::Device_Mouse)); + hideCursor = dis->scanConnectedDevices().isEmpty(); +#endif + } else { + hideCursor = hideCursorVal.toInt() != 0; + } if (!hideCursor) m_cursor = QEglFSHooks::hooks()->createCursor(this); } @@ -121,10 +135,23 @@ void QEglFSScreen::removeWindow(QEglFSWindow *window) m_windows.removeOne(window); } +void QEglFSScreen::moveToTop(QEglFSWindow *window) +{ + m_windows.removeOne(window); + m_windows.append(window); +} + +void QEglFSScreen::changeWindowIndex(QEglFSWindow *window, int newIdx) +{ + int idx = m_windows.indexOf(window); + if (idx != -1 && idx != newIdx) + m_windows.move(idx, newIdx); +} + QEglFSWindow *QEglFSScreen::rootWindow() { Q_FOREACH (QEglFSWindow *window, m_windows) { - if (window->isRasterRoot()) + if (window->hasNativeWindow()) return window; } return 0; |