RESOLVED FIXED Bug 58863
[Qt] fast/events/fire-mousedown-while-pressing-mouse-button.html failing
https://bugs.webkit.org/show_bug.cgi?id=58863
Summary [Qt] fast/events/fire-mousedown-while-pressing-mouse-button.html failing
Daniel Bates
Reported 2011-04-18 21:19:44 PDT
The layout test fast/events/fire-mousedown-while-pressing-mouse-button.html committed in changeset <http://trac.webkit.org/changeset/84217> is failing on the Qt Linux Release bot. In particular, it fails the following tests: press middle mouse button while pressing the left mouse button press right mouse button while pressing the left mouse button press right middle mouse button while pressing the right mouse button For completeness, the layout tests results are here: <http://build.webkit.org/builders/Qt%20Linux%20Release/builds/31600/steps/layout-test/logs/stdio> <http://build.webkit.org/results/Qt%20Linux%20Release/r84218%20(31600)/results.html> <http://build.webkit.org/results/Qt%20Linux%20Release/r84218%20(31600)/fast/events/fire-mousedown-while-pressing-mouse-button-pretty-diff.html>
Attachments
Patch (4.87 KB, patch)
2011-04-21 15:41 PDT, Daniel Bates
eric: review+
Patch (4.93 KB, patch)
2011-05-06 09:29 PDT, Daniel Bates
benjamin: review+
benjamin: commit-queue-
Patch (7.85 KB, patch)
2011-05-11 12:44 PDT, Daniel Bates
no flags
Patch (8.85 KB, patch)
2011-05-11 15:11 PDT, Daniel Bates
no flags
Patch (8.88 KB, patch)
2011-05-11 15:33 PDT, Daniel Bates
no flags
Patch (8.89 KB, patch)
2011-05-11 15:46 PDT, Daniel Bates
no flags
Patch (8.98 KB, patch)
2011-05-11 16:00 PDT, Daniel Bates
kenneth: review+
Daniel Bates
Comment 1 2011-04-18 21:31:25 PDT
(In reply to comment #0) > press right middle mouse button while pressing the right mouse button I meant "press middle mouse button while pressing the right mouse button".
Daniel Bates
Comment 2 2011-04-21 15:41:19 PDT
Antonio Gomes
Comment 3 2011-04-25 17:02:51 PDT
Simon, how safe is to ignore the "event->buttons() & Qt::LeftButton" statement here? same for Qt::RightButton and Qt::MidButton...
Antonio Gomes
Comment 4 2011-04-25 17:23:59 PDT
Comment on attachment 90618 [details] Patch Lets wait for Simon. I think it is correct, but it might have implications that I do not know of ...
Eric Seidel (no email)
Comment 5 2011-05-01 12:31:50 PDT
Comment on attachment 90618 [details] Patch OK.
Eric Seidel (no email)
Comment 6 2011-05-01 12:32:20 PDT
Comment on attachment 90618 [details] Patch Sounds like folks want tot alk to simon. removing cq+.
Daniel Bates
Comment 7 2011-05-06 09:29:24 PDT
Created attachment 92589 [details] Patch Updated patch. For mouse move events we need to use the bitmask returned by QMouseEvent::buttons() instead of the return value of QMouseEvent::button() because QMouseEvent::button() returns Qt::NoButton as per <http://doc.qt.nokia.com/latest/qmouseevent.html#button>.
Benjamin Poulain
Comment 8 2011-05-10 14:44:54 PDT
Comment on attachment 92589 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=92589&action=review Make sense, just check this: > Source/WebCore/platform/qt/PlatformMouseEventQt.cpp:38 > +static MouseButton mouseButtonForQtMouseButtons(Qt::MouseButtons mouseButtons) > +{ I would prefer this to take the event as the parameter. This way, the test "m_eventType == MouseEventMoved ? event->buttons() : event->button()" can be done in this function instead of being repeated by the callers.
Daniel Bates
Comment 9 2011-05-11 12:44:21 PDT
Created attachment 93160 [details] Patch Updated patch based on Benjamin Poulain's comments.
Early Warning System Bot
Comment 10 2011-05-11 12:53:23 PDT
Benjamin Poulain
Comment 11 2011-05-11 14:16:14 PDT
Comment on attachment 93160 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=93160&action=review I don't r+ yet because I am curious about the FIXME. I like the change otherwise, the new handling looks cleaner than the old code. I will look at the fixme at work. > Source/WebCore/platform/qt/PlatformMouseEventQt.cpp:3 > + * Copyright (C) 2011 Research In Motion Limited. hehe > Source/WebCore/platform/qt/PlatformMouseEventQt.cpp:102 > + #ifndef QT_NO_CONTEXTMENU The preprocessor commands should be aligned on the left (due to some pretty bad compiler on some exotic platform supported by Qt :)) > Source/WebCore/platform/qt/PlatformMouseEventQt.cpp:113 > + #endif > + if (!isContextMenuEvent) { > + mouseEventTypeAndMouseButtonFromQEvent(event, m_eventType, m_button); I think you can get rid of isContextMenuEvent and simplify. The idea #ifdef if() { } else #endif { ... } Your choose if it is simpler or not to have to bool :)
Daniel Bates
Comment 12 2011-05-11 14:25:36 PDT
Comment on attachment 93160 [details] Patch Clearing review flags while I look to update the patch.
Daniel Bates
Comment 13 2011-05-11 15:06:51 PDT
(In reply to comment #11) > (From update of attachment 93160 [details]) > [...] > > Source/WebCore/platform/qt/PlatformMouseEventQt.cpp:102 > > + #ifndef QT_NO_CONTEXTMENU > > The preprocessor commands should be aligned on the left (due to some pretty bad compiler on some exotic platform supported by Qt :)) Will fix. > > > Source/WebCore/platform/qt/PlatformMouseEventQt.cpp:113 > > + #endif > > + if (!isContextMenuEvent) { > > + mouseEventTypeAndMouseButtonFromQEvent(event, m_eventType, m_button); > > I think you can get rid of isContextMenuEvent and simplify. > The idea > #ifdef > if() { > } else > #endif > { > ... > } Notice we want to determine the mouse event type and button when compiling with context menu support (i.e. "#ifndef QT_NO_CONTEXTMENU" evaluates to true) and event->type() != QEvent::ContextMenu. I'm unclear from your code snippet if this will work out with the structure you mentioned.
Daniel Bates
Comment 14 2011-05-11 15:11:14 PDT
Early Warning System Bot
Comment 15 2011-05-11 15:24:26 PDT
Daniel Bates
Comment 16 2011-05-11 15:33:09 PDT
Early Warning System Bot
Comment 17 2011-05-11 15:43:05 PDT
Daniel Bates
Comment 18 2011-05-11 15:46:11 PDT
Early Warning System Bot
Comment 19 2011-05-11 15:55:01 PDT
Daniel Bates
Comment 20 2011-05-11 16:00:09 PDT
Kenneth Rohde Christiansen
Comment 21 2011-05-12 01:39:25 PDT
Comment on attachment 93204 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=93204&action=review Pretty nice! > Source/WebCore/platform/qt/PlatformMouseEventQt.cpp:114 > + // FIXME: Why don't we handle a context menu event here as we do in PlatformMouseEvent(QInputEvent*, int)? Maybe Benjamin would know... he dealt a bit with that for webkit2
Daniel Bates
Comment 22 2011-05-12 14:41:46 PDT
(In reply to comment #21) > (From update of attachment 93204 [details]) > > Source/WebCore/platform/qt/PlatformMouseEventQt.cpp:114 > > + // FIXME: Why don't we handle a context menu event here as we do in PlatformMouseEvent(QInputEvent*, int)? > > Maybe Benjamin would know... he dealt a bit with that for webkit2 From speaking with Benjamin today on IRC, he couldn't think of any reason why such a difference exists between the PlatformMouseEvent constructors. Filed bug #60728 for this issue.
Daniel Bates
Comment 23 2011-05-12 14:43:58 PDT
Note You need to log in before you can comment on or make changes to this bug.