Review Request 129960: Work round missing right click event after dismissing a context menu

David Edmundson david at davidedmundson.co.uk
Mon Feb 20 16:43:39 GMT 2017


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/129960/
-----------------------------------------------------------

(Updated Feb. 20, 2017, 4:43 p.m.)


Status
------

This change has been marked as submitted.


Review request for Dolphin.


Changes
-------

Submitted with commit f72dadb0c16a023c444e406b8acfa84f09f2ab31 by David Edmundson to branch master.


Repository: dolphin


Description
-------

There is a bug that can happen in the following situation:
- user right clicks to open a menu

- that context menu grabs input

- the QGrabphicsView also notes the mouse was pressed, but not that the
mouse was released because it doesn't have mouse events any more

- when a user clicks to dismiss the menu and then without moving clicks
quickly again to send, we don't get another press event because the
QGraphicsScene still thinks the mouse is pressed from the first time the
context menu was shown and
QGraphicsScenePrivate::lastMouseGrabberItemHasImplicitMouseGrab still
points to the old object.

This is a known bug in QGraphicsView and you can see
QGraphicsScenePrivate::sendMouseEvent has a workaround to reset the
lastMouseGrabberItemHasImplicitMouseGrab on mouse moves, with the
comment: "This is a temporary fix for until we get proper mouse
grab events."

Realistically this isn't going to happen in QGraphicsView now.

We do get a double click event though. By checking for double click
events we can grab those missed clicks. It doesn't cause any other side
effects because normally the context menu will fire after the first
click and this rarely gets processed.


Diffs
-----

  src/kitemviews/kitemlistcontroller.cpp 1c86ff03ff9b0b12bb0d2927f8e4ed1e0b67b38d 

Diff: https://git.reviewboard.kde.org/r/129960/diff/


Testing
-------

Opened dolphin. Right clicked on lots of things quickly. Set my double click interval to 2seconds to make this easier to reproduce.
Got context menus all the time.


Thanks,

David Edmundson

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.kde.org/mailman/private/kfm-devel/attachments/20170220/54ce05a4/attachment.htm>


More information about the kfm-devel mailing list