Bug 79664 - REGRESSION (r98361): Events not delivered to elements transformed in certain ways
Summary: REGRESSION (r98361): Events not delivered to elements transformed in certain ...
Status: RESOLVED DUPLICATE of bug 79136
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Shawn Singh
Keywords: InRadar, Regression
Depends on: 79136
  Show dependency treegraph
Reported: 2012-02-27 06:04 PST by Antoine Quint
Modified: 2012-05-02 10:36 PDT (History)
3 users (show)

See Also:

Test case (2.34 KB, text/html)
2012-02-27 06:04 PST, Antoine Quint
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Antoine Quint 2012-02-27 06:04:20 PST
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.
Comment 1 Antoine Quint 2012-02-27 06:13:49 PST
Comment 2 Simon Fraser (smfr) 2012-02-27 09:36:10 PST
Broken by http://trac.webkit.org/changeset/98361/trunk
Comment 3 Shawn Singh 2012-02-27 09:50:23 PST
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.
Comment 4 Simon Fraser (smfr) 2012-02-27 10:50:31 PST
This is hit testing in general, not really event handling.
Comment 5 Simon Fraser (smfr) 2012-02-27 15:31:36 PST
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.
Comment 6 Shawn Singh 2012-05-02 10:36:48 PDT

*** This bug has been marked as a duplicate of bug 79136 ***