Bug 17335

Summary: Calling event.preventDefault() in contextmenu handler disables other mouse event handlers.
Product: WebKit Reporter: Khoo Yit Phang <khooyp>
Component: DOMAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: megus, tom
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Mac   
OS: OS X 10.5   
Attachments:
Description Flags
Testcase demonstrating contextmenu misbehavior. none

Khoo Yit Phang
Reported 2008-02-12 17:20:43 PST
If I have a contextmenu event handler and call preventDefault() to disable the standard context menu: document.addEventListener("contextmenu", function(evt) { evt.preventDefault(); println("contextmenu"); }, true); all other mouse event handlers seem to be incorrectly disabled (or at least, no events are fired), until the next click. This misbehavior occurs in the nightlies (tested 30070+). It works correctly (events keep firing) in Safari 3, as well as Camino and Firefox.
Attachments
Testcase demonstrating contextmenu misbehavior. (1.29 KB, application/xhtml+xml)
2008-02-12 17:22 PST, Khoo Yit Phang
no flags
Khoo Yit Phang
Comment 1 2008-02-12 17:22:16 PST
Created attachment 19100 [details] Testcase demonstrating contextmenu misbehavior.
Måns Gustafsson
Comment 2 2008-03-28 07:39:01 PDT
*** Bug 17978 has been marked as a duplicate of this bug. ***
Tom Brown
Comment 3 2008-05-30 09:17:17 PDT
This is occurs under Safari 3.1. Also, I found that if the oncontextmenu event happens in an IFRAME, the problem does not occur.
Note You need to log in before you can comment on or make changes to this bug.