Bug 7790 - ondblclick doesn't fire when attached with addEventListener
: ondblclick doesn't fire when attached with addEventListener
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore
: 420+
: Macintosh Mac OS X 10.4
: P2 Normal
Assigned To: Eric Seidel
Depends on:
  Show dependency treegraph
Reported: 2006-03-15 17:17 PST by Beau Hartshorne
Modified: 2006-06-13 09:43 PDT (History)
1 user (show)

See Also:

testcase (946 bytes, text/html)
2006-03-15 17:17 PST, Beau Hartshorne
no flags Details
Fixes addEventListener("dblclick"... (21.59 KB, patch)
2006-03-15 21:58 PST, Eric Seidel
mjs: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Beau Hartshorne 2006-03-15 17:17:03 PST
ondblclick doesn't fire when attached with addEventListener.
Comment 1 Beau Hartshorne 2006-03-15 17:17:25 PST
Created attachment 7097 [details]
Comment 2 Eric Seidel 2006-03-15 20:07:19 PST
Bah.  It turns out that internally we use khtmlDblclick.  Likely for some historical reason.  That's just wrong, so I'll fix it.

But a work-around for site authors would be to use:

elem.addEventListener('khtmlDblclick', handler, false);

instead.  Or just set the elm.dblclick property directly.
Comment 3 Eric Seidel 2006-03-15 21:58:43 PST
Created attachment 7104 [details]
Fixes addEventListener("dblclick"...
Comment 4 Eric Seidel 2006-03-15 22:12:08 PST
Thanks for the bug, and the great test case!
Comment 5 Eric Seidel 2006-03-16 23:57:39 PST
Looking at the code for the Safari 2.0.3 release branch, it looks like it's not possible there.  It was explicitly disallowed for whatever reason.

khtmlDblclick worked on all nighties prior to this fix.
Comment 6 Eric Seidel 2006-06-13 09:43:35 PDT
To restate: khtmlDblClick is *not* a valid workarond for 1.3 or 2.0.  The only trick I know of working is using a timer to measure the time between two consecutive mouse clicks - if time < 300ms and the target is the same in both cases, I trigger a "virtual" dbl-click.  (thanks to Jorge Biaggini for that tip)