Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights |
| 3 * reserved. | 3 * reserved. |
| 4 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) | 4 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) |
| 5 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) | 5 * Copyright (C) 2012 Digia Plc. and/or its subsidiary(-ies) |
| 6 * | 6 * |
| 7 * Redistribution and use in source and binary forms, with or without | 7 * Redistribution and use in source and binary forms, with or without |
| 8 * modification, are permitted provided that the following conditions | 8 * modification, are permitted provided that the following conditions |
| 9 * are met: | 9 * are met: |
| 10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
| (...skipping 1164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1175 newNodeUnderMouse = m_capturingMouseEventsNode.get(); | 1175 newNodeUnderMouse = m_capturingMouseEventsNode.get(); |
| 1176 } else { | 1176 } else { |
| 1177 // If the target node is a text node, dispatch on the parent node - | 1177 // If the target node is a text node, dispatch on the parent node - |
| 1178 // rdar://4196646 | 1178 // rdar://4196646 |
| 1179 if (newNodeUnderMouse && newNodeUnderMouse->isTextNode()) | 1179 if (newNodeUnderMouse && newNodeUnderMouse->isTextNode()) |
| 1180 newNodeUnderMouse = FlatTreeTraversal::parent(*newNodeUnderMouse); | 1180 newNodeUnderMouse = FlatTreeTraversal::parent(*newNodeUnderMouse); |
| 1181 } | 1181 } |
| 1182 return newNodeUnderMouse; | 1182 return newNodeUnderMouse; |
| 1183 } | 1183 } |
| 1184 | 1184 |
| 1185 bool EventHandler::isTouchPointerEventActiveOnFrame(int pointerId, | |
| 1186 LocalFrame* frame) { | |
| 1187 DCHECK_EQ(m_frame, m_frame->localFrameRoot()); | |
| 1188 return m_pointerEventManager->isTouchPointerEventActiveOnFrame(pointerId, | |
| 1189 frame); | |
| 1190 } | |
| 1191 | |
| 1185 bool EventHandler::isPointerEventActive(int pointerId) { | 1192 bool EventHandler::isPointerEventActive(int pointerId) { |
| 1186 return m_pointerEventManager->isActive(pointerId); | 1193 return m_pointerEventManager->isActive(pointerId) || |
| 1194 m_frame->localFrameRoot() | |
| 1195 ->eventHandler() | |
| 1196 .isTouchPointerEventActiveOnFrame(pointerId, m_frame); | |
| 1187 } | 1197 } |
| 1188 | 1198 |
| 1189 void EventHandler::setPointerCapture(int pointerId, EventTarget* target) { | 1199 void EventHandler::setPointerCapture(int pointerId, EventTarget* target) { |
| 1190 // TODO(crbug.com/591387): This functionality should be per page not per | 1200 // TODO(crbug.com/591387): This functionality should be per page not per |
| 1191 // frame. | 1201 // frame. |
| 1192 m_pointerEventManager->setPointerCapture(pointerId, target); | 1202 if (m_frame != m_frame->localFrameRoot() && |
|
mustaq
2016/10/13 16:38:25
The same check is repeated 3 times---this calls fo
Navid Zolghadr
2016/10/13 17:32:32
Done.
mustaq
2016/10/13 19:55:38
I think IsPointerActiveInRootFrame is a bit misnom
Navid Zolghadr
2016/10/14 14:50:28
I updated the name.
The second paragraph is not ap
| |
| 1203 m_frame->localFrameRoot() | |
| 1204 ->eventHandler() | |
| 1205 .isTouchPointerEventActiveOnFrame(pointerId, m_frame)) { | |
| 1206 m_frame->localFrameRoot()->eventHandler().setPointerCapture(pointerId, | |
| 1207 target); | |
| 1208 } else { | |
| 1209 m_pointerEventManager->setPointerCapture(pointerId, target); | |
|
mustaq
2016/10/13 16:38:25
Not clear why we shouldn't check |isActiveOnFrame|
Navid Zolghadr
2016/10/13 17:32:32
setPointerCapture just ignores if the pointer is n
mustaq
2016/10/13 19:55:38
Does that mean there is a possibility setPointerCa
Navid Zolghadr
2016/10/14 14:50:28
If that lastNodeReceivingEvent is null that means
| |
| 1210 } | |
| 1193 } | 1211 } |
| 1194 | 1212 |
| 1195 void EventHandler::releasePointerCapture(int pointerId, EventTarget* target) { | 1213 void EventHandler::releasePointerCapture(int pointerId, EventTarget* target) { |
| 1196 m_pointerEventManager->releasePointerCapture(pointerId, target); | 1214 if (m_frame != m_frame->localFrameRoot() && |
| 1215 m_frame->localFrameRoot() | |
| 1216 ->eventHandler() | |
| 1217 .isTouchPointerEventActiveOnFrame(pointerId, m_frame)) { | |
| 1218 m_frame->localFrameRoot()->eventHandler().releasePointerCapture(pointerId, | |
| 1219 target); | |
| 1220 } else { | |
| 1221 m_pointerEventManager->releasePointerCapture(pointerId, target); | |
| 1222 } | |
| 1197 } | 1223 } |
| 1198 | 1224 |
| 1199 bool EventHandler::hasPointerCapture(int pointerId, | 1225 bool EventHandler::hasPointerCapture(int pointerId, |
| 1200 const EventTarget* target) const { | 1226 const EventTarget* target) const { |
| 1201 return m_pointerEventManager->hasPointerCapture(pointerId, target); | 1227 if (m_frame != m_frame->localFrameRoot() && |
| 1228 m_frame->localFrameRoot() | |
| 1229 ->eventHandler() | |
| 1230 .isTouchPointerEventActiveOnFrame(pointerId, m_frame)) { | |
| 1231 return m_frame->localFrameRoot()->eventHandler().hasPointerCapture( | |
| 1232 pointerId, target); | |
| 1233 } else { | |
| 1234 return m_pointerEventManager->hasPointerCapture(pointerId, target); | |
| 1235 } | |
| 1202 } | 1236 } |
| 1203 | 1237 |
| 1204 bool EventHandler::hasProcessedPointerCapture(int pointerId, | 1238 bool EventHandler::hasProcessedPointerCapture(int pointerId, |
| 1205 const EventTarget* target) const { | 1239 const EventTarget* target) const { |
| 1206 return m_pointerEventManager->hasProcessedPointerCapture(pointerId, target); | 1240 return m_pointerEventManager->hasProcessedPointerCapture(pointerId, target); |
| 1207 } | 1241 } |
| 1208 | 1242 |
| 1209 void EventHandler::elementRemoved(EventTarget* target) { | 1243 void EventHandler::elementRemoved(EventTarget* target) { |
| 1210 m_pointerEventManager->elementRemoved(target); | 1244 m_pointerEventManager->elementRemoved(target); |
| 1211 } | 1245 } |
| (...skipping 838 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2050 } | 2084 } |
| 2051 | 2085 |
| 2052 FrameHost* EventHandler::frameHost() const { | 2086 FrameHost* EventHandler::frameHost() const { |
| 2053 if (!m_frame->page()) | 2087 if (!m_frame->page()) |
| 2054 return nullptr; | 2088 return nullptr; |
| 2055 | 2089 |
| 2056 return &m_frame->page()->frameHost(); | 2090 return &m_frame->page()->frameHost(); |
| 2057 } | 2091 } |
| 2058 | 2092 |
| 2059 } // namespace blink | 2093 } // namespace blink |
| OLD | NEW |