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 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 updateCursor(); | 354 updateCursor(); |
355 } | 355 } |
356 | 356 |
357 void EventHandler::updateCursor() { | 357 void EventHandler::updateCursor() { |
358 TRACE_EVENT0("input", "EventHandler::updateCursor"); | 358 TRACE_EVENT0("input", "EventHandler::updateCursor"); |
359 | 359 |
360 // We must do a cross-frame hit test because the frame that triggered the | 360 // We must do a cross-frame hit test because the frame that triggered the |
361 // cursor update could be occluded by a different frame. | 361 // cursor update could be occluded by a different frame. |
362 ASSERT(m_frame == m_frame->localFrameRoot()); | 362 ASSERT(m_frame == m_frame->localFrameRoot()); |
363 | 363 |
364 if (m_mouseEventManager->isMousePositionUnknown()) | |
365 return; | |
366 | |
367 FrameView* view = m_frame->view(); | 364 FrameView* view = m_frame->view(); |
368 if (!view || !view->shouldSetCursor()) | 365 if (!view || !view->shouldSetCursor()) |
369 return; | 366 return; |
370 | 367 |
371 LayoutViewItem layoutViewItem = view->layoutViewItem(); | 368 LayoutViewItem layoutViewItem = view->layoutViewItem(); |
372 if (layoutViewItem.isNull()) | 369 if (layoutViewItem.isNull()) |
373 return; | 370 return; |
374 | 371 |
375 m_frame->document()->updateStyleAndLayout(); | 372 m_frame->document()->updateStyleAndLayout(); |
376 | 373 |
(...skipping 1519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1896 locationInRootFrame, globalPosition, | 1893 locationInRootFrame, globalPosition, |
1897 WebPointerProperties::Button::NoButton, eventType, /* clickCount */ 0, | 1894 WebPointerProperties::Button::NoButton, eventType, /* clickCount */ 0, |
1898 PlatformEvent::NoModifiers, PlatformMouseEvent::RealOrIndistinguishable, | 1895 PlatformEvent::NoModifiers, PlatformMouseEvent::RealOrIndistinguishable, |
1899 TimeTicks::Now(), WebPointerProperties::PointerType::Mouse); | 1896 TimeTicks::Now(), WebPointerProperties::PointerType::Mouse); |
1900 | 1897 |
1901 return sendContextMenuEvent(mouseEvent, overrideTargetElement); | 1898 return sendContextMenuEvent(mouseEvent, overrideTargetElement); |
1902 } | 1899 } |
1903 | 1900 |
1904 void EventHandler::scheduleHoverStateUpdate() { | 1901 void EventHandler::scheduleHoverStateUpdate() { |
1905 // TODO(https://crbug.com/668758): Use a normal BeginFrame update for this. | 1902 // TODO(https://crbug.com/668758): Use a normal BeginFrame update for this. |
1906 if (!m_hoverTimer.isActive()) | 1903 if (!m_hoverTimer.isActive() && |
| 1904 !m_mouseEventManager->isMousePositionUnknown()) |
1907 m_hoverTimer.startOneShot(0, BLINK_FROM_HERE); | 1905 m_hoverTimer.startOneShot(0, BLINK_FROM_HERE); |
1908 } | 1906 } |
1909 | 1907 |
1910 void EventHandler::scheduleCursorUpdate() { | 1908 void EventHandler::scheduleCursorUpdate() { |
1911 // We only want one timer for the page, rather than each frame having it's own | 1909 // We only want one timer for the page, rather than each frame having it's own |
1912 // timer competing which eachother (since there's only one mouse cursor). | 1910 // timer competing which eachother (since there's only one mouse cursor). |
1913 ASSERT(m_frame == m_frame->localFrameRoot()); | 1911 ASSERT(m_frame == m_frame->localFrameRoot()); |
1914 | 1912 |
1915 // TODO(https://crbug.com/668758): Use a normal BeginFrame update for this. | 1913 // TODO(https://crbug.com/668758): Use a normal BeginFrame update for this. |
1916 if (!m_cursorUpdateTimer.isActive()) | 1914 if (!m_cursorUpdateTimer.isActive()) |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2128 } | 2126 } |
2129 | 2127 |
2130 FrameHost* EventHandler::frameHost() const { | 2128 FrameHost* EventHandler::frameHost() const { |
2131 if (!m_frame->page()) | 2129 if (!m_frame->page()) |
2132 return nullptr; | 2130 return nullptr; |
2133 | 2131 |
2134 return &m_frame->page()->frameHost(); | 2132 return &m_frame->page()->frameHost(); |
2135 } | 2133 } |
2136 | 2134 |
2137 } // namespace blink | 2135 } // namespace blink |
OLD | NEW |