Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserv ed. |
| 3 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 3 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 4 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) | 4 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 2994 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3005 doc->updateHoverActiveState(request, result.innerElement()); | 3005 doc->updateHoverActiveState(request, result.innerElement()); |
| 3006 | 3006 |
| 3007 // The contextmenu event is a mouse event even when invoked using the keyboa rd. | 3007 // The contextmenu event is a mouse event even when invoked using the keyboa rd. |
| 3008 // This is required for web compatibility. | 3008 // This is required for web compatibility. |
| 3009 PlatformEvent::Type eventType = PlatformEvent::MousePressed; | 3009 PlatformEvent::Type eventType = PlatformEvent::MousePressed; |
| 3010 if (m_frame->settings() && m_frame->settings()->showContextMenuOnMouseUp()) | 3010 if (m_frame->settings() && m_frame->settings()->showContextMenuOnMouseUp()) |
| 3011 eventType = PlatformEvent::MouseReleased; | 3011 eventType = PlatformEvent::MouseReleased; |
| 3012 | 3012 |
| 3013 PlatformMouseEvent mouseEvent(locationInRootFrame, globalPosition, | 3013 PlatformMouseEvent mouseEvent(locationInRootFrame, globalPosition, |
| 3014 RightButton, eventType, 1, | 3014 RightButton, eventType, 1, |
| 3015 PlatformEvent::NoModifiers, PlatformMouseEvent::RealOrIndistinguishable, | 3015 PlatformEvent::NoModifiers, PlatformMouseEvent::RealOrIndistinguishable, |
|
mustaq
2016/01/19 19:33:41
Please use the same logic here too.
Navid Zolghadr
2016/01/19 20:41:40
No. I don't think that is correct. This is differe
mustaq
2016/01/19 21:50:13
I didn't mean sending extra events here. With butt
Navid Zolghadr
2016/01/19 21:57:28
I can definitely do that. The only point is that t
| |
| 3016 WTF::monotonicallyIncreasingTime(), WebPointerProperties::PointerType::M ouse); | 3016 WTF::monotonicallyIncreasingTime(), WebPointerProperties::PointerType::M ouse); |
| 3017 | 3017 |
| 3018 return sendContextMenuEvent(mouseEvent, overrideTargetElement); | 3018 return sendContextMenuEvent(mouseEvent, overrideTargetElement); |
| 3019 } | 3019 } |
| 3020 | 3020 |
| 3021 WebInputEventResult EventHandler::sendContextMenuEventForGesture(const GestureEv entWithHitTestResults& targetedEvent) | 3021 WebInputEventResult EventHandler::sendContextMenuEventForGesture(const GestureEv entWithHitTestResults& targetedEvent) |
| 3022 { | 3022 { |
| 3023 const PlatformGestureEvent& gestureEvent = targetedEvent.event(); | 3023 const PlatformGestureEvent& gestureEvent = targetedEvent.event(); |
| 3024 unsigned modifiers = gestureEvent.modifiers(); | 3024 unsigned modifiers = gestureEvent.modifiers(); |
| 3025 | 3025 |
| 3026 // Send MouseMoved event prior to handling (https://crbug.com/485290). | 3026 // Send MouseMoved event prior to handling (https://crbug.com/485290). |
| 3027 PlatformMouseEvent fakeMouseMove(gestureEvent.position(), gestureEvent.globa lPosition(), | 3027 PlatformMouseEvent fakeMouseMove(gestureEvent.position(), gestureEvent.globa lPosition(), |
| 3028 NoButton, PlatformEvent::MouseMoved, /* clickCount */ 0, | 3028 NoButton, PlatformEvent::MouseMoved, /* clickCount */ 0, |
| 3029 static_cast<PlatformEvent::Modifiers>(modifiers), | 3029 static_cast<PlatformEvent::Modifiers>(modifiers), |
| 3030 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerPrope rties::PointerType::Mouse); | 3030 PlatformMouseEvent::FromTouch, gestureEvent.timestamp(), WebPointerPrope rties::PointerType::Mouse); |
| 3031 dispatchMouseEvent(EventTypeNames::mousemove, targetedEvent.hitTestResult(). innerNode(), 0, fakeMouseMove); | 3031 dispatchMouseEvent(EventTypeNames::mousemove, targetedEvent.hitTestResult(). innerNode(), 0, fakeMouseMove); |
| 3032 | 3032 |
| 3033 PlatformEvent::Type eventType = PlatformEvent::MousePressed; | 3033 PlatformEvent::Type eventType = PlatformEvent::MousePressed; |
| 3034 | 3034 |
| 3035 if (m_frame->settings() && m_frame->settings()->showContextMenuOnMouseUp()) | 3035 if (m_frame->settings() && m_frame->settings()->showContextMenuOnMouseUp()) |
| 3036 eventType = PlatformEvent::MouseReleased; | 3036 eventType = PlatformEvent::MouseReleased; |
|
mustaq
2016/01/19 19:33:41
This seems to be firing mouseup when showContextMe
Navid Zolghadr
2016/01/19 20:41:40
That is not the case. Although we set the eventTyp
mustaq
2016/01/19 21:50:13
The down vs up mix up here seems non-trivial for s
Navid Zolghadr
2016/01/19 21:57:28
Sure. I will remove the else.
| |
| 3037 else | 3037 else |
| 3038 modifiers |= PlatformEvent::RightButtonDown; | 3038 modifiers |= PlatformEvent::RightButtonDown; |
| 3039 | 3039 |
| 3040 PlatformMouseEvent mouseEvent(targetedEvent.event().position(), targetedEven t.event().globalPosition(), RightButton, eventType, 1, | 3040 PlatformMouseEvent mouseEvent(targetedEvent.event().position(), targetedEven t.event().globalPosition(), RightButton, eventType, 1, |
| 3041 static_cast<PlatformEvent::Modifiers>(modifiers), | 3041 static_cast<PlatformEvent::Modifiers>(modifiers | PlatformEvent::RightBu ttonDown), |
| 3042 PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), WebPo interProperties::PointerType::Mouse); | 3042 PlatformMouseEvent::FromTouch, WTF::monotonicallyIncreasingTime(), WebPo interProperties::PointerType::Mouse); |
| 3043 // To simulate right-click behavior, we send a right mouse down and then | 3043 // To simulate right-click behavior, we send a right mouse down and then |
| 3044 // context menu event. | 3044 // context menu event. |
| 3045 // FIXME: Send HitTestResults to avoid redundant hit tests. | 3045 // FIXME: Send HitTestResults to avoid redundant hit tests. |
| 3046 handleMousePressEvent(mouseEvent); | 3046 handleMousePressEvent(mouseEvent); |
| 3047 return sendContextMenuEvent(mouseEvent); | 3047 return sendContextMenuEvent(mouseEvent); |
| 3048 // We do not need to send a corresponding mouse release because in case of | 3048 // We do not need to send a corresponding mouse release because in case of |
| 3049 // right-click, the context menu takes capture and consumes all events. | 3049 // right-click, the context menu takes capture and consumes all events. |
| 3050 } | 3050 } |
| 3051 | 3051 |
| (...skipping 1092 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4144 PlatformEvent::Modifiers EventHandler::accessKeyModifiers() | 4144 PlatformEvent::Modifiers EventHandler::accessKeyModifiers() |
| 4145 { | 4145 { |
| 4146 #if OS(MACOSX) | 4146 #if OS(MACOSX) |
| 4147 return static_cast<PlatformEvent::Modifiers>(PlatformEvent::CtrlKey | Platfo rmEvent::AltKey); | 4147 return static_cast<PlatformEvent::Modifiers>(PlatformEvent::CtrlKey | Platfo rmEvent::AltKey); |
| 4148 #else | 4148 #else |
| 4149 return PlatformEvent::AltKey; | 4149 return PlatformEvent::AltKey; |
| 4150 #endif | 4150 #endif |
| 4151 } | 4151 } |
| 4152 | 4152 |
| 4153 } // namespace blink | 4153 } // namespace blink |
| OLD | NEW |