summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/mirclient/qmirclientwindow.h
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-01-21 08:17:21 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2016-01-21 08:17:21 +0100
commit158a3a4159bdc5a49caecd63e021dacbc06cf23c (patch)
treec3ed9aee6cabd46e5e8615b3815b92d32857c4da /src/plugins/platforms/mirclient/qmirclientwindow.h
parent26ece94a68fb5ae680c5639716b06c4e1ae979a8 (diff)
parent7b2fb038ae4b8b9231ae989ad309b6eca107a858 (diff)
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts: src/corelib/io/qiodevice_p.h src/corelib/kernel/qvariant_p.h src/corelib/tools/qsimd.cpp src/gui/kernel/qguiapplication.cpp tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp Change-Id: I742a093cbb231b282b43e463ec67173e0d29f57a
Diffstat (limited to 'src/plugins/platforms/mirclient/qmirclientwindow.h')
-rw-r--r--src/plugins/platforms/mirclient/qmirclientwindow.h33
1 files changed, 19 insertions, 14 deletions
diff --git a/src/plugins/platforms/mirclient/qmirclientwindow.h b/src/plugins/platforms/mirclient/qmirclientwindow.h
index f342669544..4ec7879949 100644
--- a/src/plugins/platforms/mirclient/qmirclientwindow.h
+++ b/src/plugins/platforms/mirclient/qmirclientwindow.h
@@ -40,20 +40,23 @@
#include <qpa/qplatformwindow.h>
#include <QSharedPointer>
+#include <QMutex>
-#include <mir_toolkit/mir_client_library.h>
+#include <memory>
class QMirClientClipboard;
class QMirClientInput;
class QMirClientScreen;
-class QMirClientWindowPrivate;
+class QMirClientSurface;
+struct MirConnection;
+struct MirSurface;
class QMirClientWindow : public QObject, public QPlatformWindow
{
Q_OBJECT
public:
- QMirClientWindow(QWindow *w, QSharedPointer<QMirClientClipboard> clipboard, QMirClientScreen *screen,
- QMirClientInput *input, MirConnection *mir_connection);
+ QMirClientWindow(QWindow *w, const QSharedPointer<QMirClientClipboard> &clipboard, QMirClientScreen *screen,
+ QMirClientInput *input, MirConnection *mirConnection);
virtual ~QMirClientWindow();
// QPlatformWindow methods.
@@ -61,20 +64,22 @@ public:
void setGeometry(const QRect&) override;
void setWindowState(Qt::WindowState state) override;
void setVisible(bool visible) override;
+ void setWindowTitle(const QString &title) override;
+ void propagateSizeHints() override;
// New methods.
- void* eglSurface() const;
- void handleSurfaceResize(int width, int height);
- void handleSurfaceFocusChange(bool focused);
- void onBuffersSwapped_threadSafe(int newBufferWidth, int newBufferHeight);
-
- QMirClientWindowPrivate* priv() { return d; }
+ void *eglSurface() const;
+ MirSurface *mirSurface() const;
+ void handleSurfaceResized(int width, int height);
+ void handleSurfaceFocused();
+ void onSwapBuffersDone();
private:
- void createWindow();
- void moveResize(const QRect& rect);
-
- QMirClientWindowPrivate *d;
+ void updatePanelHeightHack(Qt::WindowState);
+ mutable QMutex mMutex;
+ const WId mId;
+ const QSharedPointer<QMirClientClipboard> mClipboard;
+ std::unique_ptr<QMirClientSurface> mSurface;
};
#endif // QMIRCLIENTWINDOW_H