D5106: Add support for activating screenedges through touch swipe gestures

David Edmundson noreply at phabricator.kde.org
Sun Mar 19 17:16:06 UTC 2017


davidedmundson added a comment.


  mostly looks fine. Only one major comment about the return after handling client edges.

INLINE COMMENTS

> gestures.cpp:61
> +    case Direction::Right:
> +        return std::min(std::abs(delta.width()) / std::abs(m_minimumDelta.width()), 1.0);
> +    default:

having negatives in minimumDelta would make no sense in the first place..

> screenedge.cpp:76
>      , m_client(nullptr)
> +    , m_gesture(new SwipeGesture)
>  {

who owns SwipeGesture?

> screenedge.cpp:84
> +                m_client->showOnScreenEdge();
> +                unreserve();
> +            }

equivalent ::handle() code returns after this.

> screenedge.cpp:92
> +    connect(m_gesture, &SwipeGesture::cancelled, this, &Edge::stopApproaching);
> +    connect(m_gesture, &SwipeGesture::triggered, this, &Edge::stopApproaching);
> +    connect(m_gesture, &SwipeGesture::progress, this,

maybe we want to do this inside the triggered lambda above, otherwise we call stopApproaching, before handling the trigger which is queued.

If our wayland side ever gets a doStopApproaching, it might result in being a bit out of order

> screenedge.cpp:473
>  {
> +    if (isScreenEdge() && !m_edges->isDesktopSwitching()) {
> +        m_edges->gestureRecognizer()->registerGesture(m_gesture);

Note that the only subclass of Edge doesn't call the super class for any of the virtual methods: doGeom/activate/deactivate.

To fit the current pattern this should be in setGeometry / reserve / unreserve respectively

(and yes, I know the current only subclass of Edge isn't relevant in this case)

REVISION DETAIL
  https://phabricator.kde.org/D5106

To: graesslin, #kwin, #plasma_on_wayland
Cc: davidedmundson, plasma-devel, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, eliasp, sebas, apol
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20170319/79a9a9ed/attachment.html>


More information about the Plasma-devel mailing list