summaryrefslogtreecommitdiffstats
path: root/src/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/client')
-rw-r--r--src/client/qwaylanddnd.cpp7
-rw-r--r--src/client/qwaylanddnd_p.h2
-rw-r--r--src/client/qwaylandscreen.cpp17
-rw-r--r--src/client/qwaylandscreen_p.h5
-rw-r--r--src/client/qwaylandwindow.cpp43
-rw-r--r--src/client/qwaylandwindow_p.h10
-rw-r--r--src/client/qwaylandwindowmanagerintegration.cpp22
-rw-r--r--src/client/qwaylandwindowmanagerintegration_p.h2
8 files changed, 42 insertions, 66 deletions
diff --git a/src/client/qwaylanddnd.cpp b/src/client/qwaylanddnd.cpp
index 54c075c4a..fe620506d 100644
--- a/src/client/qwaylanddnd.cpp
+++ b/src/client/qwaylanddnd.cpp
@@ -62,13 +62,6 @@ QWaylandDrag::~QWaylandDrag()
{
}
-QMimeData * QWaylandDrag::platformDropData()
-{
- if (drag())
- return drag()->mimeData();
- return 0;
-}
-
void QWaylandDrag::startDrag()
{
QBasicDrag::startDrag();
diff --git a/src/client/qwaylanddnd_p.h b/src/client/qwaylanddnd_p.h
index 2a99432c5..8a1d7f1f1 100644
--- a/src/client/qwaylanddnd_p.h
+++ b/src/client/qwaylanddnd_p.h
@@ -71,8 +71,6 @@ public:
QWaylandDrag(QWaylandDisplay *display);
~QWaylandDrag();
- QMimeData *platformDropData() override;
-
void updateTarget(const QString &mimeType);
void setResponse(const QPlatformDragQtResponse &response);
void finishDrag(const QPlatformDropQtResponse &response);
diff --git a/src/client/qwaylandscreen.cpp b/src/client/qwaylandscreen.cpp
index ac5954577..7f12a4214 100644
--- a/src/client/qwaylandscreen.cpp
+++ b/src/client/qwaylandscreen.cpp
@@ -89,6 +89,16 @@ QWaylandDisplay * QWaylandScreen::display() const
return mWaylandDisplay;
}
+QString QWaylandScreen::manufacturer() const
+{
+ return mManufacturer;
+}
+
+QString QWaylandScreen::model() const
+{
+ return mModel;
+}
+
QRect QWaylandScreen::geometry() const
{
// Scale geometry for QScreen. This makes window and screen
@@ -197,12 +207,11 @@ void QWaylandScreen::output_geometry(int32_t x, int32_t y,
int32_t transform)
{
Q_UNUSED(subpixel);
- Q_UNUSED(make);
- mTransform = transform;
+ mManufacturer = make;
+ mModel = model;
- if (!model.isEmpty())
- mOutputName = model;
+ mTransform = transform;
mPhysicalSize = QSize(width, height);
mGeometry.moveTopLeft(QPoint(x, y));
diff --git a/src/client/qwaylandscreen_p.h b/src/client/qwaylandscreen_p.h
index b2900a964..f5da2194c 100644
--- a/src/client/qwaylandscreen_p.h
+++ b/src/client/qwaylandscreen_p.h
@@ -72,6 +72,9 @@ public:
void init();
QWaylandDisplay *display() const;
+ QString manufacturer() const override;
+ QString model() const override;
+
QRect geometry() const override;
int depth() const override;
QImage::Format format() const override;
@@ -113,6 +116,8 @@ private:
int m_outputId;
QWaylandDisplay *mWaylandDisplay;
+ QString mManufacturer;
+ QString mModel;
QRect mGeometry;
int mScale;
int mDepth;
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index 5585fd52a..9b994508c 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -211,7 +211,7 @@ void QWaylandWindow::initWindow()
// but since we're creating the shellsurface only now we reset mState to
// make sure the state gets sent out to the compositor
mState = Qt::WindowNoState;
- setWindowStateInternal(window()->windowState());
+ setWindowStateInternal(window()->windowStates());
handleContentOrientationChange(window()->contentOrientation());
mFlags = window()->flags();
}
@@ -596,7 +596,7 @@ void QWaylandWindow::setOrientationMask(Qt::ScreenOrientations mask)
mShellSurface->setContentOrientationMask(mask);
}
-void QWaylandWindow::setWindowState(Qt::WindowState state)
+void QWaylandWindow::setWindowState(Qt::WindowStates state)
{
if (setWindowStateInternal(state))
QWindowSystemInterface::flushWindowSystemEvents(); // Required for oldState to work on WindowStateChanged
@@ -614,16 +614,16 @@ void QWaylandWindow::setWindowFlags(Qt::WindowFlags flags)
bool QWaylandWindow::createDecoration()
{
// so far only xdg-shell support this "unminimize" trick, may be moved elsewhere
- if (mState == Qt::WindowMinimized) {
+ if (mState & Qt::WindowMinimized) {
QWaylandXdgSurface *xdgSurface = qobject_cast<QWaylandXdgSurface *>(mShellSurface);
if ( xdgSurface ) {
- if (xdgSurface->isFullscreen()) {
- setWindowStateInternal(Qt::WindowFullScreen);
- } else if (xdgSurface->isMaximized()) {
- setWindowStateInternal(Qt::WindowMaximized);
- } else {
- setWindowStateInternal(Qt::WindowNoState);
- }
+ Qt::WindowStates states;
+ if (xdgSurface->isFullscreen())
+ states |= Qt::WindowFullScreen;
+ if (xdgSurface->isMaximized())
+ states |= Qt::WindowMaximized;
+
+ setWindowStateInternal(states);
}
}
@@ -874,7 +874,7 @@ bool QWaylandWindow::setMouseGrabEnabled(bool grab)
return true;
}
-bool QWaylandWindow::setWindowStateInternal(Qt::WindowState state)
+bool QWaylandWindow::setWindowStateInternal(Qt::WindowStates state)
{
if (mState == state) {
return false;
@@ -887,19 +887,14 @@ bool QWaylandWindow::setWindowStateInternal(Qt::WindowState state)
if (mShellSurface) {
createDecoration();
- switch (state) {
- case Qt::WindowFullScreen:
- mShellSurface->setFullscreen();
- break;
- case Qt::WindowMaximized:
- mShellSurface->setMaximized();
- break;
- case Qt::WindowMinimized:
- mShellSurface->setMinimized();
- break;
- default:
- mShellSurface->setNormal();
- }
+ if (state & Qt::WindowMaximized)
+ mShellSurface->setMaximized();
+ if (state & Qt::WindowFullScreen)
+ mShellSurface->setFullscreen();
+ if (state & Qt::WindowMinimized)
+ mShellSurface->setMinimized();
+ if (!state)
+ mShellSurface->setNormal();
}
QWindowSystemInterface::handleWindowStateChanged(window(), mState);
diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h
index 29eb6c596..cc11b3c11 100644
--- a/src/client/qwaylandwindow_p.h
+++ b/src/client/qwaylandwindow_p.h
@@ -148,7 +148,7 @@ public:
void handleContentOrientationChange(Qt::ScreenOrientation orientation) override;
void setOrientationMask(Qt::ScreenOrientations mask);
- void setWindowState(Qt::WindowState state) override;
+ void setWindowState(Qt::WindowStates state) override;
void setWindowFlags(Qt::WindowFlags flags) override;
void raise() override;
@@ -173,8 +173,8 @@ public:
bool createDecoration();
- inline bool isMaximized() const { return mState == Qt::WindowMaximized; }
- inline bool isFullscreen() const { return mState == Qt::WindowFullScreen; }
+ inline bool isMaximized() const { return mState & Qt::WindowMaximized; }
+ inline bool isFullscreen() const { return mState & Qt::WindowFullScreen; }
#if QT_CONFIG(cursor)
void setMouseCursor(QWaylandInputDevice *device, const QCursor &cursor);
@@ -239,14 +239,14 @@ protected:
QIcon mWindowIcon;
- Qt::WindowState mState;
+ Qt::WindowStates mState;
Qt::WindowFlags mFlags;
QRegion mMask;
QWaylandShmBackingStore *mBackingStore;
private:
- bool setWindowStateInternal(Qt::WindowState flags);
+ bool setWindowStateInternal(Qt::WindowStates flags);
void setGeometry_helper(const QRect &rect);
void initWindow();
void initializeWlSurface();
diff --git a/src/client/qwaylandwindowmanagerintegration.cpp b/src/client/qwaylandwindowmanagerintegration.cpp
index 60825aec2..c519126e5 100644
--- a/src/client/qwaylandwindowmanagerintegration.cpp
+++ b/src/client/qwaylandwindowmanagerintegration.cpp
@@ -109,28 +109,6 @@ void QWaylandWindowManagerIntegration::windowmanager_quit()
QGuiApplication::quit();
}
-QByteArray QWaylandWindowManagerIntegration::desktopEnvironment() const
-{
- const QByteArray xdgCurrentDesktop = qgetenv("XDG_CURRENT_DESKTOP");
- if (!xdgCurrentDesktop.isEmpty())
- return xdgCurrentDesktop.toUpper(); // KDE, GNOME, UNITY, LXDE, MATE, XFCE...
-
- // Classic fallbacks
- if (!qEnvironmentVariableIsEmpty("KDE_FULL_SESSION"))
- return QByteArrayLiteral("KDE");
- if (!qEnvironmentVariableIsEmpty("GNOME_DESKTOP_SESSION_ID"))
- return QByteArrayLiteral("GNOME");
-
- // Fallback to checking $DESKTOP_SESSION (unreliable)
- const QByteArray desktopSession = qgetenv("DESKTOP_SESSION");
- if (desktopSession == "gnome")
- return QByteArrayLiteral("GNOME");
- if (desktopSession == "xfce")
- return QByteArrayLiteral("XFCE");
-
- return QByteArrayLiteral("UNKNOWN");
-}
-
void QWaylandWindowManagerIntegration::openUrl_helper(const QUrl &url)
{
Q_ASSERT(isInitialized());
diff --git a/src/client/qwaylandwindowmanagerintegration_p.h b/src/client/qwaylandwindowmanagerintegration_p.h
index cf6ca6605..e399d4f0b 100644
--- a/src/client/qwaylandwindowmanagerintegration_p.h
+++ b/src/client/qwaylandwindowmanagerintegration_p.h
@@ -77,8 +77,6 @@ public:
explicit QWaylandWindowManagerIntegration(QWaylandDisplay *waylandDisplay);
virtual ~QWaylandWindowManagerIntegration();
- QByteArray desktopEnvironment() const override;
-
bool openUrl(const QUrl &url) override;
bool openDocument(const QUrl &url) override;