Created attachment 129023 [details] Test case In the attached test case, two elements are laid out with a rotation and a translation along the z-axis. That z-axis translation is the opposite of one applied to a parent container element. While both elements are visible on screen, only the bottom one can receive events. A mousedown or touchstart event (depending on platform) is registered on the window to catch all events and show what the event target is.
<rdar://problem/10937079>
Broken by http://trac.webkit.org/changeset/98361/trunk
I'm working on a fix for https://bugs.webkit.org/show_bug.cgi?id=79136 Based on Comment #2, I think a fix for 79136 that will also fix this. I'll mark this as a duplicate a few days later after I can verify.
This is hit testing in general, not really event handling.
The edge-on ".host" element is resulting in a negative w component in TransformationMatrix::projectPoint(), which results in a localPoint of -INT_MAX, -INT_MAX, which causes the hit testing on descendant elements to bail at: if (!clipRect.intersects(hitTestArea)) We need to keep hit-testing descendants even if one edge-on element causes whacky stuff to happen.
*** This bug has been marked as a duplicate of bug 79136 ***