Client: Implement QPlatformWindow::startSystemMove()
Hooks into what we already use for the window decorations. Task-number: QTBUG-58044 Change-Id: Idcd971f69d52a5bb760bb6bffb26e9f5bdd429df Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
This commit is contained in:
parent
01d0594c9e
commit
2d468ebfa5
@ -78,7 +78,7 @@ public:
|
|||||||
virtual void resize(QWaylandInputDevice * /*inputDevice*/, enum wl_shell_surface_resize /*edges*/)
|
virtual void resize(QWaylandInputDevice * /*inputDevice*/, enum wl_shell_surface_resize /*edges*/)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
virtual void move(QWaylandInputDevice * /*inputDevice*/) {}
|
virtual bool move(QWaylandInputDevice *) { return false; }
|
||||||
virtual void setTitle(const QString & /*title*/) {}
|
virtual void setTitle(const QString & /*title*/) {}
|
||||||
virtual void setAppId(const QString & /*appId*/) {}
|
virtual void setAppId(const QString & /*appId*/) {}
|
||||||
|
|
||||||
|
@ -1045,6 +1045,14 @@ void QWaylandWindow::addAttachOffset(const QPoint point)
|
|||||||
mOffset += point;
|
mOffset += point;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QtWaylandClient::QWaylandWindow::startSystemMove(const QPoint &pos)
|
||||||
|
{
|
||||||
|
Q_UNUSED(pos);
|
||||||
|
if (auto seat = display()->lastInputDevice())
|
||||||
|
return mShellSurface && mShellSurface->move(seat);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
@ -201,6 +201,8 @@ public:
|
|||||||
void propagateSizeHints() override { }
|
void propagateSizeHints() override { }
|
||||||
void addAttachOffset(const QPoint point);
|
void addAttachOffset(const QPoint point);
|
||||||
|
|
||||||
|
bool startSystemMove(const QPoint &pos) override;
|
||||||
|
|
||||||
void requestUpdate() override;
|
void requestUpdate() override;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
@ -74,10 +74,11 @@ void QWaylandWlShellSurface::resize(QWaylandInputDevice *inputDevice, enum wl_sh
|
|||||||
edges);
|
edges);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QWaylandWlShellSurface::move(QWaylandInputDevice *inputDevice)
|
bool QWaylandWlShellSurface::move(QWaylandInputDevice *inputDevice)
|
||||||
{
|
{
|
||||||
move(inputDevice->wl_seat(),
|
move(inputDevice->wl_seat(),
|
||||||
inputDevice->serial());
|
inputDevice->serial());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QWaylandWlShellSurface::setTitle(const QString & title)
|
void QWaylandWlShellSurface::setTitle(const QString & title)
|
||||||
|
@ -81,7 +81,7 @@ public:
|
|||||||
void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges) override;
|
void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges) override;
|
||||||
|
|
||||||
using QtWayland::wl_shell_surface::move;
|
using QtWayland::wl_shell_surface::move;
|
||||||
void move(QWaylandInputDevice *inputDevice) override;
|
bool move(QWaylandInputDevice *inputDevice) override;
|
||||||
|
|
||||||
void setTitle(const QString & title) override;
|
void setTitle(const QString & title) override;
|
||||||
void setAppId(const QString &appId) override;
|
void setAppId(const QString &appId) override;
|
||||||
|
@ -142,10 +142,13 @@ void QWaylandXdgSurfaceV6::resize(QWaylandInputDevice *inputDevice, enum wl_shel
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void QWaylandXdgSurfaceV6::move(QWaylandInputDevice *inputDevice)
|
bool QWaylandXdgSurfaceV6::move(QWaylandInputDevice *inputDevice)
|
||||||
{
|
{
|
||||||
Q_ASSERT(m_toplevel && m_toplevel->isInitialized());
|
if (m_toplevel && m_toplevel->isInitialized()) {
|
||||||
m_toplevel->move(inputDevice->wl_seat(), inputDevice->serial());
|
m_toplevel->move(inputDevice->wl_seat(), inputDevice->serial());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QWaylandXdgSurfaceV6::setTitle(const QString &title)
|
void QWaylandXdgSurfaceV6::setTitle(const QString &title)
|
||||||
|
@ -79,7 +79,7 @@ public:
|
|||||||
|
|
||||||
void resize(QWaylandInputDevice *inputDevice, enum zxdg_toplevel_v6_resize_edge edges);
|
void resize(QWaylandInputDevice *inputDevice, enum zxdg_toplevel_v6_resize_edge edges);
|
||||||
void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges) override;
|
void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges) override;
|
||||||
void move(QWaylandInputDevice *inputDevice) override;
|
bool move(QWaylandInputDevice *inputDevice) override;
|
||||||
void setTitle(const QString &title) override;
|
void setTitle(const QString &title) override;
|
||||||
void setAppId(const QString &appId) override;
|
void setAppId(const QString &appId) override;
|
||||||
|
|
||||||
|
@ -85,10 +85,11 @@ void QWaylandXdgSurface::resize(QWaylandInputDevice *inputDevice, enum resize_ed
|
|||||||
edges);
|
edges);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QWaylandXdgSurface::move(QWaylandInputDevice *inputDevice)
|
bool QWaylandXdgSurface::move(QWaylandInputDevice *inputDevice)
|
||||||
{
|
{
|
||||||
move(inputDevice->wl_seat(),
|
move(inputDevice->wl_seat(),
|
||||||
inputDevice->serial());
|
inputDevice->serial());
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QWaylandXdgSurface::setMaximized()
|
void QWaylandXdgSurface::setMaximized()
|
||||||
|
@ -85,7 +85,7 @@ public:
|
|||||||
void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges) override;
|
void resize(QWaylandInputDevice *inputDevice, enum wl_shell_surface_resize edges) override;
|
||||||
|
|
||||||
using QtWayland::xdg_surface::move;
|
using QtWayland::xdg_surface::move;
|
||||||
void move(QWaylandInputDevice *inputDevice) override;
|
bool move(QWaylandInputDevice *inputDevice) override;
|
||||||
|
|
||||||
void setTitle(const QString &title) override;
|
void setTitle(const QString &title) override;
|
||||||
void setAppId(const QString &appId) override;
|
void setAppId(const QString &appId) override;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user