wayland: Support affinities too
This commit is contained in:
@@ -59,7 +59,6 @@ WindowBeingDragged::WindowBeingDragged(FloatingWindow *fw, Draggable *draggable)
|
||||
: m_floatingWindow(fw)
|
||||
, m_draggable(bestDraggable(draggable))
|
||||
, m_draggableWidget(m_draggable ? m_draggable->asWidget() : nullptr)
|
||||
, m_affinities(fw->affinities())
|
||||
{
|
||||
init();
|
||||
|
||||
@@ -88,7 +87,6 @@ WindowBeingDragged::WindowBeingDragged(Draggable *draggable)
|
||||
WindowBeingDragged::WindowBeingDragged(FloatingWindow *fw)
|
||||
: m_floatingWindow(fw)
|
||||
, m_draggable(nullptr)
|
||||
, m_affinities(fw->affinities())
|
||||
{
|
||||
}
|
||||
|
||||
@@ -127,7 +125,8 @@ void WindowBeingDragged::grabMouse(bool grab)
|
||||
|
||||
QStringList WindowBeingDragged::affinities() const
|
||||
{
|
||||
return m_affinities;
|
||||
return m_floatingWindow ? m_floatingWindow->affinities()
|
||||
: QStringList();
|
||||
}
|
||||
|
||||
QSize WindowBeingDragged::size() const
|
||||
@@ -235,6 +234,18 @@ QPixmap WindowBeingDraggedWayland::pixmap() const
|
||||
return pixmap;
|
||||
}
|
||||
|
||||
QStringList WindowBeingDraggedWayland::affinities() const
|
||||
{
|
||||
if (m_floatingWindow)
|
||||
return WindowBeingDragged::affinities();
|
||||
else if (m_frame)
|
||||
return m_frame->affinities();
|
||||
else if (m_dockWidget)
|
||||
return { m_dockWidget->affinities() };
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
QVector<DockWidgetBase *> WindowBeingDraggedWayland::dockWidgets() const
|
||||
{
|
||||
if (m_floatingWindow)
|
||||
|
||||
@@ -46,7 +46,7 @@ public:
|
||||
void grabMouse(bool grab);
|
||||
|
||||
///@brief returns the affinities of the window being dragged
|
||||
QStringList affinities() const;
|
||||
virtual QStringList affinities() const;
|
||||
|
||||
///@brief size of the window being dragged contents
|
||||
virtual QSize size() const;
|
||||
@@ -75,8 +75,6 @@ protected:
|
||||
QPointer<FloatingWindow> m_floatingWindow;
|
||||
Draggable *const m_draggable;
|
||||
QPointer<QWidgetOrQuick> m_draggableWidget; // Just to have a QPointer on it
|
||||
|
||||
const QStringList m_affinities;
|
||||
};
|
||||
|
||||
struct WindowBeingDraggedWayland : public WindowBeingDragged
|
||||
@@ -89,6 +87,7 @@ public:
|
||||
QSize minSize() const override;
|
||||
QSize maxSize() const override;
|
||||
QPixmap pixmap() const override;
|
||||
QStringList affinities() const override;
|
||||
QVector<DockWidgetBase*> dockWidgets() const override;
|
||||
|
||||
// These two are set for Wayland only, where we can't make the floating window immediately (no way to position it)
|
||||
|
||||
Reference in New Issue
Block a user