summaryrefslogtreecommitdiffstats
path: root/src/compositor/wayland_wrapper/qwldatadevice.cpp
diff options
context:
space:
mode:
authorJohan Klokkhammer Helsing <johan.helsing@qt.io>2016-05-31 10:30:16 +0200
committerJohan Helsing <johan.helsing@qt.io>2016-06-09 08:03:25 +0000
commit06e8770129d5c49bfb518b02b3ece6d529e0e4c3 (patch)
tree6dd9690b369deca5811b6bfac64c08c99402bd1a /src/compositor/wayland_wrapper/qwldatadevice.cpp
parentacecb305cbdc70e9217c33023dc184fb632a1996 (diff)
Compositor API: Clear drag icon when dropping
Change-Id: I81f9645d1bc959e31f7663ab89bda285951331e7 Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Diffstat (limited to 'src/compositor/wayland_wrapper/qwldatadevice.cpp')
-rw-r--r--src/compositor/wayland_wrapper/qwldatadevice.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/compositor/wayland_wrapper/qwldatadevice.cpp b/src/compositor/wayland_wrapper/qwldatadevice.cpp
index b11bc8f4f..dea72bdcd 100644
--- a/src/compositor/wayland_wrapper/qwldatadevice.cpp
+++ b/src/compositor/wayland_wrapper/qwldatadevice.cpp
@@ -148,6 +148,7 @@ void DataDevice::drop()
} else {
m_dragDataSource->cancel();
}
+ setDragIcon(nullptr);
}
void DataDevice::cancelDrag()
@@ -159,8 +160,7 @@ void DataDevice::data_device_start_drag(Resource *resource, struct ::wl_resource
{
m_dragClient = resource->client();
m_dragDataSource = source ? DataSource::fromResource(source) : 0;
- m_dragIcon = icon ? QWaylandSurface::fromResource(icon) : 0;
- Q_EMIT m_inputDevice->drag()->iconChanged();
+ setDragIcon(icon ? QWaylandSurface::fromResource(icon) : nullptr);
Q_EMIT m_inputDevice->drag()->dragStarted();
Q_UNUSED(serial);
@@ -193,6 +193,14 @@ void DataDevice::data_device_set_selection(Resource *, struct ::wl_resource *sou
}
}
+void DataDevice::setDragIcon(QWaylandSurface *icon)
+{
+ if (icon == m_dragIcon)
+ return;
+ m_dragIcon = icon;
+ Q_EMIT m_inputDevice->drag()->iconChanged();
+}
+
}
QT_END_NAMESPACE