https://bugs.kde.org/show_bug.cgi?id=437406

--- Comment #10 from David Edmundson <k...@davidedmundson.co.uk> ---
Second bug is, we stop XVisit when wayland says the drag ends, which in theory
is after the drop event gets sent to the client.

#0  KWin::Xwl::Xvisit::doFinish() (this=0x55555625f6e0)
    at /home/david/projects/kde5/src/kde/workspace/kwin/src/xwl/drag_wl.cpp:444
#1  0x000055555559197e in KWin::Xwl::Xvisit::leave() (this=0x55555625f6e0)
    at /home/david/projects/kde5/src/kde/workspace/kwin/src/xwl/drag_wl.cpp:265
#2  0x0000555555591b9e in KWin::Xwl::WlToXDrag::end() (this=0x5555560d53a0)
    at /home/david/projects/kde5/src/kde/workspace/kwin/src/xwl/drag_wl.cpp:91
#3  0x000055555558e53a in KWin::Xwl::Dnd::endDrag() (this=0x555555f28760)
    at /home/david/projects/kde5/src/kde/workspace/kwin/src/xwl/dnd.cpp:203
#4  0x000055555558fd01 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>,
QtPrivate::List<>, void, void (KWin::Xwl::Dnd::*)()>::call(void
(KWin::Xwl::Dnd::*)(), KWin::Xwl::Dnd*, void**)
    (f=(void (KWin::Xwl::Dnd::*)(KWin::Xwl::Dnd * const)) 0x55555558e4e0
<KWin::Xwl::Dnd::endDrag()>, o=0x555555f28760, arg=0x7fffffffc0c0) at
/opt/qt5/include/QtCore/qobjectdefs_impl.h:152
#5  0x000055555558fc68 in QtPrivate::FunctionPointer<void
(KWin::Xwl::Dnd::*)()>::call<QtPrivate::List<>, void>(void
(KWin::Xwl::Dnd::*)(), KWin::Xwl::Dnd*, void**)
    (f=(void (KWin::Xwl::Dnd::*)(KWin::Xwl::Dnd * const)) 0x55555558e4e0
<KWin::Xwl::Dnd::endDrag()>, o=0x555555f28760, arg=0x7fffffffc0c0) at
/opt/qt5/include/QtCore/qobjectdefs_impl.h:185
#6  0x000055555558fb95 in QtPrivate::QSlotObject<void (KWin::Xwl::Dnd::*)(),
QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*,
void**, bool*)
    (which=1, this_=0x555555f251d0, r=0x555555f28760, a=0x7fffffffc0c0,
ret=0x0)
    at /opt/qt5/include/QtCore/qobjectdefs_impl.h:418
#7  0x00007ffff43e696d in QtPrivate::QSlotObjectBase::call(QObject*, void**)
    (a=0x7fffffffc0c0, r=0x555555f28760, this=0x555555f251d0)
    at
../../include/QtCore/../../../../../src/Qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:398
#8  doActivate<false>(QObject*, int, void**) (sender=0x5555556bb810,
signal_index=13, argv=0x7fffffffc0c0)
    at
/home/david/projects/kde5/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3886
#9  0x00007ffff43ddd6b in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**)
    (sender=<optimized out>, m=<optimized out>, local_signal_index=<optimized
out>, argv=<optimized out>)
    at
/home/david/projects/kde5/src/Qt5/qtbase/src/corelib/kernel/qobject.cpp:3946
#10 0x00007ffff4f514d8 in KWaylandServer::SeatInterface::dragEnded()
(this=0x5555556bb810)
    at src/server/KWaylandServer_autogen/EWIEGA46WW/moc_seat_interface.cpp:420
#11 0x00007ffff4fbf1ae in
KWaylandServer::SeatInterfacePrivate::endDrag(unsigned int) (this=
    0x555555709520, serial=27)
#12 0x00007ffff4fc21b3 in
KWaylandServer::SeatInterface::notifyPointerButton(unsigned int,
KWaylandServer::PointerButtonState) (this=0x5555556bb810, button=272,
state=KWaylandServer::PointerButtonState::Released)
    at
/home/david/projects/kde5/src/kde/workspace/kwayland-server/src/server/seat_interface.cpp:756
#13 0x00007ffff7890362 in
KWin::DragAndDropInputFilter::pointerEvent(QMouseEvent*, unsigned int)
    (this=0x555555a0e460, event=0x7fffffffc938, nativeButton=272)
    at /home/david/projects/kde5/src/kde/workspace/kwin/src/input.cpp:1956


But because the drop event goes through KWayland::Client it is obviously async,
but delivery of the end isnt. We either need to send both things through
kwayland::client or none.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to