D15464: [server] Touch drag support

2018-12-02 Thread Roman Gilg
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

2018-11-09 Thread Roman Gilg
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

2018-10-30 Thread David Edmundson
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

2018-09-18 Thread Roman Gilg
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

2018-09-18 Thread Roman Gilg
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

2018-09-12 Thread David Edmundson
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

2018-09-12 Thread Roman Gilg
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

2018-09-12 Thread Roman Gilg
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

2018-09-12 Thread Roman Gilg
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