summaryrefslogtreecommitdiffstats
path: root/src/client/qwaylandwindow_p.h
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-09-27 14:30:08 +0200
committerLiang Qi <liang.qi@qt.io>2017-09-27 15:10:13 +0200
commitef69b4d772304efcc3b9141900f4e76642d4873b (patch)
treebe32cebe5d78f424fba33808966982312998a277 /src/client/qwaylandwindow_p.h
parent064feb4fd76e6adbfcafe449d6ae7f52834c538a (diff)
parentffee1b3fb8c8e76d9317547376c8f13b0e17b494 (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.h15
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);