summaryrefslogtreecommitdiffstats
path: root/src/compositor/wayland_wrapper
diff options
context:
space:
mode:
authorJohan Klokkhammer Helsing <johan.helsing@qt.io>2016-06-02 15:54:15 +0200
committerJohan Helsing <johan.helsing@qt.io>2016-06-03 10:07:01 +0000
commit8ef270dacbbb03c5b1eeaabe35e034ce7df96f2f (patch)
tree19cd0cf4190ff5f22f6d4154a020c011c90d1b2e /src/compositor/wayland_wrapper
parent4a69820c9bb37b07174cac24d5c7b2ab55d16152 (diff)
Store and expose origin surface in QWaylandDrag
Change-Id: Ic2bcc88f4ff375019ff7c6fe80ae4ec72205ca2d Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
Diffstat (limited to 'src/compositor/wayland_wrapper')
-rw-r--r--src/compositor/wayland_wrapper/qwldatadevice.cpp9
-rw-r--r--src/compositor/wayland_wrapper/qwldatadevice_p.h2
2 files changed, 10 insertions, 1 deletions
diff --git a/src/compositor/wayland_wrapper/qwldatadevice.cpp b/src/compositor/wayland_wrapper/qwldatadevice.cpp
index b11bc8f4f..e766d6f5b 100644
--- a/src/compositor/wayland_wrapper/qwldatadevice.cpp
+++ b/src/compositor/wayland_wrapper/qwldatadevice.cpp
@@ -65,6 +65,7 @@ DataDevice::DataDevice(QWaylandInputDevice *inputDevice)
, m_dragFocus(0)
, m_dragFocusResource(0)
, m_dragIcon(0)
+ , m_dragOrigin(nullptr)
{
}
@@ -123,6 +124,11 @@ QWaylandSurface *DataDevice::dragIcon() const
return m_dragIcon;
}
+QWaylandSurface *DataDevice::dragOrigin() const
+{
+ return m_dragOrigin;
+}
+
void DataDevice::sourceDestroyed(DataSource *source)
{
if (m_selectionSource == source)
@@ -148,6 +154,7 @@ void DataDevice::drop()
} else {
m_dragDataSource->cancel();
}
+ m_dragOrigin = nullptr;
}
void DataDevice::cancelDrag()
@@ -159,12 +166,12 @@ void DataDevice::data_device_start_drag(Resource *resource, struct ::wl_resource
{
m_dragClient = resource->client();
m_dragDataSource = source ? DataSource::fromResource(source) : 0;
+ m_dragOrigin = QWaylandSurface::fromResource(origin);
m_dragIcon = icon ? QWaylandSurface::fromResource(icon) : 0;
Q_EMIT m_inputDevice->drag()->iconChanged();
Q_EMIT m_inputDevice->drag()->dragStarted();
Q_UNUSED(serial);
- Q_UNUSED(origin);
//### need to verify that we have an implicit grab with this serial
}
diff --git a/src/compositor/wayland_wrapper/qwldatadevice_p.h b/src/compositor/wayland_wrapper/qwldatadevice_p.h
index 7359f3084..62d6021f7 100644
--- a/src/compositor/wayland_wrapper/qwldatadevice_p.h
+++ b/src/compositor/wayland_wrapper/qwldatadevice_p.h
@@ -70,6 +70,7 @@ public:
void setDragFocus(QWaylandSurface *focus, const QPointF &localPosition);
QWaylandSurface *dragIcon() const;
+ QWaylandSurface *dragOrigin() const;
void sourceDestroyed(DataSource *source);
@@ -94,6 +95,7 @@ private:
Resource *m_dragFocusResource;
QWaylandSurface *m_dragIcon;
+ QWaylandSurface *m_dragOrigin;
};
}