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

Reply via email to