Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Side by Side Diff: third_party/WebKit/Source/core/input/EventHandler.cpp

Issue 2785853002: Selection Action mode triggered like a context menu (Closed)
Patch Set: fix rebase Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 1874 matching lines...) Expand 10 before | Expand all | Expand 10 after
1885 if (!target_node) 1885 if (!target_node)
1886 target_node = doc; 1886 target_node = doc;
1887 1887
1888 // Use the focused node as the target for hover and active. 1888 // Use the focused node as the target for hover and active.
1889 HitTestRequest request(HitTestRequest::kActive); 1889 HitTestRequest request(HitTestRequest::kActive);
1890 HitTestResult result(request, location_in_root_frame); 1890 HitTestResult result(request, location_in_root_frame);
1891 result.SetInnerNode(target_node); 1891 result.SetInnerNode(target_node);
1892 doc->UpdateHoverActiveState(request, result.InnerElement()); 1892 doc->UpdateHoverActiveState(request, result.InnerElement());
1893 1893
1894 // The contextmenu event is a mouse event even when invoked using the 1894 // The contextmenu event is a mouse event even when invoked using the
1895 // keyboard or other methods. This is required for web compatibility. 1895 // keyboard. This is required for web compatibility.
1896 WebInputEvent::Type event_type = WebInputEvent::kMouseDown; 1896 WebInputEvent::Type event_type = WebInputEvent::kMouseDown;
1897 if (frame_->GetSettings() && 1897 if (frame_->GetSettings() &&
1898 frame_->GetSettings()->GetShowContextMenuOnMouseUp()) 1898 frame_->GetSettings()->GetShowContextMenuOnMouseUp())
1899 event_type = WebInputEvent::kMouseUp; 1899 event_type = WebInputEvent::kMouseUp;
1900 1900
1901 WebInputEvent::Modifiers modifiers;
1902 switch (source_type) {
1903 case kMenuSourceTouch:
1904 case kMenuSourceLongPress:
1905 case kMenuSourceTouchHandle:
1906 modifiers = WebInputEvent::kIsCompatibilityEventForTouch;
1907 break;
1908 default:
1909 modifiers = WebInputEvent::kNoModifiers;
1910 break;
1911 }
1912
1901 WebMouseEvent mouse_event( 1913 WebMouseEvent mouse_event(
1902 event_type, 1914 event_type,
1903 WebFloatPoint(location_in_root_frame.X(), location_in_root_frame.Y()), 1915 WebFloatPoint(location_in_root_frame.X(), location_in_root_frame.Y()),
1904 WebFloatPoint(global_position.X(), global_position.Y()), 1916 WebFloatPoint(global_position.X(), global_position.Y()),
1905 WebPointerProperties::Button::kNoButton, /* clickCount */ 0, 1917 WebPointerProperties::Button::kNoButton, /* clickCount */ 0, modifiers,
1906 ((source_type == kMenuSourceTouchHandle)
1907 ? WebInputEvent::kIsCompatibilityEventForTouch
1908 : WebInputEvent::kNoModifiers),
1909 TimeTicks::Now().InSeconds()); 1918 TimeTicks::Now().InSeconds());
1910 1919
1911 // TODO(dtapuska): Transition the mouseEvent to be created really in viewport 1920 // TODO(dtapuska): Transition the mouseEvent to be created really in viewport
1912 // coordinates instead of root frame coordinates. 1921 // coordinates instead of root frame coordinates.
1913 mouse_event.SetFrameScale(1); 1922 mouse_event.SetFrameScale(1);
1914 1923
1915 return SendContextMenuEvent(mouse_event, override_target_element); 1924 return SendContextMenuEvent(mouse_event, override_target_element);
1916 } 1925 }
1917 1926
1918 void EventHandler::ScheduleHoverStateUpdate() { 1927 void EventHandler::ScheduleHoverStateUpdate() {
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
2136 MouseEventWithHitTestResults& mev, 2145 MouseEventWithHitTestResults& mev,
2137 LocalFrame* subframe) { 2146 LocalFrame* subframe) {
2138 WebInputEventResult result = 2147 WebInputEventResult result =
2139 subframe->GetEventHandler().HandleMouseReleaseEvent(mev.Event()); 2148 subframe->GetEventHandler().HandleMouseReleaseEvent(mev.Event());
2140 if (result != WebInputEventResult::kNotHandled) 2149 if (result != WebInputEventResult::kNotHandled)
2141 return result; 2150 return result;
2142 return WebInputEventResult::kHandledSystem; 2151 return WebInputEventResult::kHandledSystem;
2143 } 2152 }
2144 2153
2145 } // namespace blink 2154 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698