D15464: [server] Touch drag support
This revision was automatically updated to reflect the committed changes. Closed by commit R127:09b5adee94ad: [server] Touch drag support (authored by romangg). REPOSITORY R127 KWayland CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D15464?vs=45164&id=46753 REVISION DETAIL https://phabricator.kde.org/D15464 AFFECTED FILES autotests/client/test_drag_drop.cpp src/server/datadevice_interface.cpp src/server/seat_interface.cpp src/server/seat_interface.h src/server/seat_interface_p.h src/server/touch_interface.cpp To: romangg, #kwin, #frameworks, davidedmundson Cc: davidedmundson, kde-frameworks-devel, michaelh, ngraham, bruns
D15464: [server] Touch drag support
romangg updated this revision to Diff 45164. romangg added a comment. - No touch motion on drag - Add touch dnd autotest REPOSITORY R127 KWayland CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D15464?vs=41923&id=45164 BRANCH touchDrag REVISION DETAIL https://phabricator.kde.org/D15464 AFFECTED FILES autotests/client/test_drag_drop.cpp src/server/datadevice_interface.cpp src/server/seat_interface.cpp src/server/seat_interface.h src/server/seat_interface_p.h src/server/touch_interface.cpp To: romangg, #kwin, #frameworks, davidedmundson Cc: davidedmundson, kde-frameworks-devel, michaelh, ngraham, bruns
D15464: [server] Touch drag support
davidedmundson accepted this revision. This revision is now accepted and ready to land. REPOSITORY R127 KWayland BRANCH touchDrag REVISION DETAIL https://phabricator.kde.org/D15464 To: romangg, #kwin, #frameworks, davidedmundson Cc: davidedmundson, kde-frameworks-devel, michaelh, ngraham, bruns
D15464: [server] Touch drag support
romangg updated this revision to Diff 41923. romangg marked an inline comment as done. romangg added a comment. - Fix id setting and cancel touch drags - Reapply position of first touch on drag REPOSITORY R127 KWayland CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D15464?vs=41503&id=41923 BRANCH touchDrag REVISION DETAIL https://phabricator.kde.org/D15464 AFFECTED FILES src/server/datadevice_interface.cpp src/server/seat_interface.cpp src/server/seat_interface.h src/server/seat_interface_p.h To: romangg, #kwin, #frameworks Cc: davidedmundson, kde-frameworks-devel, michaelh, ngraham, bruns
D15464: [server] Touch drag support
romangg marked 3 inline comments as done. romangg added inline comments. INLINE COMMENTS > davidedmundson wrote in seat_interface.cpp:1331 > If I add 2 IDs > > [0,1] > > then remove ID 0 > > [1] > > with the old code I would get the ID 2, with this I'll get a second ID 1 Redid this one too many times and overlooked this obvious problem. I will just use the last() call of the QMap instead of size(). Thanks! > davidedmundson wrote in seat_interface_p.h:153 > If you don't need the order QHash over QMap Needs to be a QMap now again with the last() call in the touchDown method. REPOSITORY R127 KWayland REVISION DETAIL https://phabricator.kde.org/D15464 To: romangg, #kwin, #frameworks Cc: davidedmundson, kde-frameworks-devel, michaelh, ngraham, bruns
D15464: [server] Touch drag support
davidedmundson added inline comments. INLINE COMMENTS > datadevice_interface.cpp:102 > { > // TODO: allow touch > +const bool pointerGrab = seat->hasImplicitPointerGrab(serial) && > seat->focusedPointerSurface() == origin; done > seat_interface.cpp:1331 > Q_D(); > -const qint32 id = d->globalTouch.ids.isEmpty() ? 0 : > d->globalTouch.ids.last() + 1; > +const qint32 id = d->globalTouch.ids.isEmpty() ? 0 : > d->globalTouch.ids.size(); > const qint32 serial = display()->nextSerial(); If I add 2 IDs [0,1] then remove ID 0 [1] with the old code I would get the ID 2, with this I'll get a second ID 1 > seat_interface.cpp:1358 > const qint32 serial = display()->nextSerial(); > +if (d->drag.mode == Private::Drag::Mode::Touch && > +d->drag.source->dragImplicitGrabSerial() == > d->globalTouch.ids.value(id)) { I expect you need this in touchCancel too > seat_interface_p.h:153 > Focus focus; > -QVector ids; > +QMap ids; > }; If you don't need the order QHash over QMap REPOSITORY R127 KWayland REVISION DETAIL https://phabricator.kde.org/D15464 To: romangg, #kwin, #frameworks Cc: davidedmundson, kde-frameworks-devel, michaelh, ngraham, bruns
D15464: [server] Touch drag support
romangg added a dependent revision: D15466: Add Wayland touch drag and drop support. REPOSITORY R127 KWayland REVISION DETAIL https://phabricator.kde.org/D15464 To: romangg, #kwin, #frameworks Cc: kde-frameworks-devel, michaelh, ngraham, bruns
D15464: [server] Touch drag support
romangg added a dependency: D15443: [server] Allow multiple touch interfaces per client and remove fallback code. REPOSITORY R127 KWayland REVISION DETAIL https://phabricator.kde.org/D15464 To: romangg, #kwin, #frameworks Cc: kde-frameworks-devel, michaelh, ngraham, bruns
D15464: [server] Touch drag support
romangg created this revision. romangg added reviewers: KWin, Frameworks. Herald added a project: Frameworks. Herald added a subscriber: kde-frameworks-devel. romangg requested review of this revision. REVISION SUMMARY Adds functionality to do drag and drop with touch screens. TEST PLAN Manually. Autotest planned. REPOSITORY R127 KWayland BRANCH touchDrag REVISION DETAIL https://phabricator.kde.org/D15464 AFFECTED FILES src/server/datadevice_interface.cpp src/server/seat_interface.cpp src/server/seat_interface.h src/server/seat_interface_p.h To: romangg, #kwin, #frameworks Cc: kde-frameworks-devel, michaelh, ngraham, bruns