OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2001 Peter Kelly (pmk@post.com) | 2 * Copyright (C) 2001 Peter Kelly (pmk@post.com) |
3 * Copyright (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de) | 3 * Copyright (C) 2001 Tobias Anton (anton@stud.fbi.fh-darmstadt.de) |
4 * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) | 4 * Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) |
5 * Copyright (C) 2003, 2005, 2006, 2008 Apple Inc. All rights reserved. | 5 * Copyright (C) 2003, 2005, 2006, 2008 Apple Inc. All rights reserved. |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
286 | 286 |
287 ASSERT(!mouseEvent.target() || mouseEvent.target() != mouseEvent.relatedTarg
et()); | 287 ASSERT(!mouseEvent.target() || mouseEvent.target() != mouseEvent.relatedTarg
et()); |
288 | 288 |
289 EventTarget* relatedTarget = mouseEvent.relatedTarget(); | 289 EventTarget* relatedTarget = mouseEvent.relatedTarget(); |
290 | 290 |
291 DispatchEventResult dispatchResult = dispatcher.dispatch(); | 291 DispatchEventResult dispatchResult = dispatcher.dispatch(); |
292 | 292 |
293 if (mouseEvent.type() != EventTypeNames::click || mouseEvent.detail() != 2) | 293 if (mouseEvent.type() != EventTypeNames::click || mouseEvent.detail() != 2) |
294 return dispatchResult; | 294 return dispatchResult; |
295 | 295 |
296 // Do not send dblclick event for non-primary button clicks. | |
297 if (mouseEvent.button() != MouseButton::LeftButton) | |
298 return dispatchResult; | |
299 | |
300 // Special case: If it's a double click event, we also send the dblclick eve
nt. This is not part | 296 // Special case: If it's a double click event, we also send the dblclick eve
nt. This is not part |
301 // of the DOM specs, but is used for compatibility with the ondblclick="" at
tribute. This is treated | 297 // of the DOM specs, but is used for compatibility with the ondblclick="" at
tribute. This is treated |
302 // as a separate event in other DOM-compliant browsers like Firefox, and so
we do the same. | 298 // as a separate event in other DOM-compliant browsers like Firefox, and so
we do the same. |
303 MouseEvent* doubleClickEvent = MouseEvent::create(); | 299 MouseEvent* doubleClickEvent = MouseEvent::create(); |
304 doubleClickEvent->initMouseEventInternal(EventTypeNames::dblclick, mouseEven
t.bubbles(), mouseEvent.cancelable(), mouseEvent.view(), | 300 doubleClickEvent->initMouseEventInternal(EventTypeNames::dblclick, mouseEven
t.bubbles(), mouseEvent.cancelable(), mouseEvent.view(), |
305 mouseEvent.detail(), mouseEvent.screenX(), mouseEvent.screenY(), mouseEv
ent.clientX(), mouseEvent.clientY(), | 301 mouseEvent.detail(), mouseEvent.screenX(), mouseEvent.screenY(), mouseEv
ent.clientX(), mouseEvent.clientY(), |
306 mouseEvent.modifiers(), mouseEvent.button(), relatedTarget, mouseEvent.s
ourceCapabilities(), mouseEvent.buttons()); | 302 mouseEvent.modifiers(), mouseEvent.button(), relatedTarget, mouseEvent.s
ourceCapabilities(), mouseEvent.buttons()); |
307 | 303 |
308 // Inherit the trusted status from the original event. | 304 // Inherit the trusted status from the original event. |
309 doubleClickEvent->setTrusted(mouseEvent.isTrusted()); | 305 doubleClickEvent->setTrusted(mouseEvent.isTrusted()); |
310 if (mouseEvent.defaultHandled()) | 306 if (mouseEvent.defaultHandled()) |
311 doubleClickEvent->setDefaultHandled(); | 307 doubleClickEvent->setDefaultHandled(); |
312 DispatchEventResult doubleClickDispatchResult = EventDispatcher::dispatchEve
nt(dispatcher.node(), MouseEventDispatchMediator::create(doubleClickEvent)); | 308 DispatchEventResult doubleClickDispatchResult = EventDispatcher::dispatchEve
nt(dispatcher.node(), MouseEventDispatchMediator::create(doubleClickEvent)); |
313 if (doubleClickDispatchResult != DispatchEventResult::NotCanceled) | 309 if (doubleClickDispatchResult != DispatchEventResult::NotCanceled) |
314 return doubleClickDispatchResult; | 310 return doubleClickDispatchResult; |
315 return dispatchResult; | 311 return dispatchResult; |
316 } | 312 } |
317 | 313 |
318 } // namespace blink | 314 } // namespace blink |
OLD | NEW |