diff options
author | Liang Qi <liang.qi@qt.io> | 2017-09-27 14:30:08 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-09-27 15:10:13 +0200 |
commit | ef69b4d772304efcc3b9141900f4e76642d4873b (patch) | |
tree | be32cebe5d78f424fba33808966982312998a277 /src/client/qwaylandwindow_p.h | |
parent | 064feb4fd76e6adbfcafe449d6ae7f52834c538a (diff) | |
parent | ffee1b3fb8c8e76d9317547376c8f13b0e17b494 (diff) |
Merge remote-tracking branch 'origin/5.10' into dev
Conflicts:
src/client/qwaylandwindow.cpp
src/client/qwaylandwindow_p.h
src/compositor/compositor_api/qwaylandpointer.cpp
Change-Id: Icbc22a1ae3cdd9cde438742817d07fccf97f647b
Diffstat (limited to 'src/client/qwaylandwindow_p.h')
-rw-r--r-- | src/client/qwaylandwindow_p.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h index 6e07ff1c7..4cebcd7af 100644 --- a/src/client/qwaylandwindow_p.h +++ b/src/client/qwaylandwindow_p.h @@ -53,7 +53,6 @@ #include <QtCore/QWaitCondition> #include <QtCore/QMutex> -#include <QtCore/QAtomicPointer> #include <QtGui/QIcon> #include <QtCore/QVariant> @@ -143,7 +142,7 @@ public: QWaylandDisplay *display() const { return mDisplay; } QWaylandShellSurface *shellSurface() const; QWaylandSubSurface *subSurfaceWindow() const; - QWaylandScreen *waylandScreen() const { return mScreen; } + QWaylandScreen *waylandScreen() const; void handleContentOrientationChange(Qt::ScreenOrientation orientation) override; void setOrientationMask(Qt::ScreenOrientations mask); @@ -210,7 +209,10 @@ public slots: void requestResize(); protected: - QWaylandScreen *mScreen; + void surface_enter(struct ::wl_output *output) override; + void surface_leave(struct ::wl_output *output) override; + + QVector<QWaylandScreen *> mScreens; //As seen by wl_surface.enter/leave events. Chronological order. QWaylandDisplay *mDisplay; QWaylandShellSurface *mShellSurface; QWaylandSubSurface *mSubSurfaceWindow; @@ -222,7 +224,7 @@ protected: WId mWindowId; bool mWaitingForFrameSync; - QAtomicPointer<struct wl_callback> mFrameCallback; + struct ::wl_callback *mFrameCallback = nullptr; QWaitCondition mFrameSyncWait; QMutex mResizeLock; @@ -245,6 +247,9 @@ protected: QWaylandShmBackingStore *mBackingStore; +private slots: + void handleScreenRemoved(QScreen *qScreen); + private: bool setWindowStateInternal(Qt::WindowStates flags); void setGeometry_helper(const QRect &rect); @@ -254,6 +259,8 @@ private: bool shouldCreateSubSurface() const; void reset(bool sendDestroyEvent = true); void sendExposeEvent(const QRect &rect); + static void closePopups(QWaylandWindow *parent); + QWaylandScreen *calculateScreenFromSurfaceEvents() const; void handleMouseEventWithDecoration(QWaylandInputDevice *inputDevice, const QWaylandPointerEvent &e); |