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 1867 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1878 result.SetInnerNode(target_node); | 1878 result.SetInnerNode(target_node); |
1879 doc->UpdateHoverActiveState(request, result.InnerElement()); | 1879 doc->UpdateHoverActiveState(request, result.InnerElement()); |
1880 | 1880 |
1881 // The contextmenu event is a mouse event even when invoked using the | 1881 // The contextmenu event is a mouse event even when invoked using the |
1882 // keyboard. This is required for web compatibility. | 1882 // keyboard. This is required for web compatibility. |
1883 WebInputEvent::Type event_type = WebInputEvent::kMouseDown; | 1883 WebInputEvent::Type event_type = WebInputEvent::kMouseDown; |
1884 if (frame_->GetSettings() && | 1884 if (frame_->GetSettings() && |
1885 frame_->GetSettings()->GetShowContextMenuOnMouseUp()) | 1885 frame_->GetSettings()->GetShowContextMenuOnMouseUp()) |
1886 event_type = WebInputEvent::kMouseUp; | 1886 event_type = WebInputEvent::kMouseUp; |
1887 | 1887 |
1888 WebInputEvent::Modifiers modifiers; | |
1889 switch (source_type) { | |
1890 case kMenuSourceSelectAll: | |
1891 modifiers = WebInputEvent::kSelectAll; | |
1892 break; | |
1893 case kMenuSourceTouch: | |
1894 case kMenuSourceLongPress: | |
1895 case kMenuSourceTouchHandle: | |
1896 modifiers = WebInputEvent::kIsCompatibilityEventForTouch; | |
1897 break; | |
1898 default: | |
1899 modifiers = WebInputEvent::kNoModifiers; | |
1900 break; | |
1901 } | |
1902 | |
1888 WebMouseEvent mouse_event( | 1903 WebMouseEvent mouse_event( |
1889 event_type, | 1904 event_type, |
1890 WebFloatPoint(location_in_root_frame.X(), location_in_root_frame.Y()), | 1905 WebFloatPoint(location_in_root_frame.X(), location_in_root_frame.Y()), |
1891 WebFloatPoint(global_position.X(), global_position.Y()), | 1906 WebFloatPoint(global_position.X(), global_position.Y()), |
1892 WebPointerProperties::Button::kNoButton, /* clickCount */ 0, | 1907 WebPointerProperties::Button::kNoButton, /* clickCount */ 0, modifiers, |
1893 ((source_type == kMenuSourceTouchHandle) | |
1894 ? WebInputEvent::kIsCompatibilityEventForTouch | |
1895 : WebInputEvent::kNoModifiers), | |
1896 TimeTicks::Now().InSeconds()); | 1908 TimeTicks::Now().InSeconds()); |
1897 | 1909 |
1898 // TODO(dtapuska): Transition the mouseEvent to be created really in viewport | 1910 // TODO(dtapuska): Transition the mouseEvent to be created really in viewport |
1899 // coordinates instead of root frame coordinates. | 1911 // coordinates instead of root frame coordinates. |
1900 mouse_event.SetFrameScale(1); | 1912 mouse_event.SetFrameScale(1); |
1901 | 1913 |
1902 return SendContextMenuEvent(mouse_event, override_target_element); | 1914 return SendContextMenuEvent(mouse_event, override_target_element); |
1903 } | 1915 } |
1904 | 1916 |
1917 WebInputEventResult EventHandler::SendContextMenuEventForTouchSelection( | |
aelias_OOO_until_Jul13
2017/05/23 20:52:05
This return value is unused by the callers. Since
amaralp1
2017/05/24 08:30:34
Done.
| |
1918 WebMenuSourceType menu_source) { | |
1919 // TODO(editing-dev): The use of UpdateStyleAndLayoutIgnorePendingStylesheets | |
1920 // needs to be audited. See http://crbug.com/590369 for more details. | |
1921 frame_->GetDocument()->UpdateStyleAndLayoutIgnorePendingStylesheets(); | |
1922 FrameSelection& selection = frame_->Selection(); | |
1923 if (!(selection.IsAvailable() && selection.IsHandleVisible() && | |
1924 selection.ComputeVisibleSelectionInFlatTree().IsRange())) | |
1925 return WebInputEventResult::kNotHandled; | |
1926 return SendContextMenuEventForKey(nullptr, menu_source); | |
1927 } | |
1928 | |
1905 void EventHandler::ScheduleHoverStateUpdate() { | 1929 void EventHandler::ScheduleHoverStateUpdate() { |
1906 // TODO(https://crbug.com/668758): Use a normal BeginFrame update for this. | 1930 // TODO(https://crbug.com/668758): Use a normal BeginFrame update for this. |
1907 if (!hover_timer_.IsActive() && | 1931 if (!hover_timer_.IsActive() && |
1908 !mouse_event_manager_->IsMousePositionUnknown()) | 1932 !mouse_event_manager_->IsMousePositionUnknown()) |
1909 hover_timer_.StartOneShot(0, BLINK_FROM_HERE); | 1933 hover_timer_.StartOneShot(0, BLINK_FROM_HERE); |
1910 } | 1934 } |
1911 | 1935 |
1912 void EventHandler::ScheduleCursorUpdate() { | 1936 void EventHandler::ScheduleCursorUpdate() { |
1913 // We only want one timer for the page, rather than each frame having it's own | 1937 // We only want one timer for the page, rather than each frame having it's own |
1914 // timer competing which eachother (since there's only one mouse cursor). | 1938 // timer competing which eachother (since there's only one mouse cursor). |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2123 MouseEventWithHitTestResults& mev, | 2147 MouseEventWithHitTestResults& mev, |
2124 LocalFrame* subframe) { | 2148 LocalFrame* subframe) { |
2125 WebInputEventResult result = | 2149 WebInputEventResult result = |
2126 subframe->GetEventHandler().HandleMouseReleaseEvent(mev.Event()); | 2150 subframe->GetEventHandler().HandleMouseReleaseEvent(mev.Event()); |
2127 if (result != WebInputEventResult::kNotHandled) | 2151 if (result != WebInputEventResult::kNotHandled) |
2128 return result; | 2152 return result; |
2129 return WebInputEventResult::kHandledSystem; | 2153 return WebInputEventResult::kHandledSystem; |
2130 } | 2154 } |
2131 | 2155 |
2132 } // namespace blink | 2156 } // namespace blink |
OLD | NEW |