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

Side by Side Diff: third_party/WebKit/Source/web/InspectorOverlay.cpp

Issue 2818883002: [DevTools] Swallow mouse up in inspect mode (Closed)
Patch Set: better Created 3 years, 8 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
« no previous file with comments | « third_party/WebKit/Source/web/InspectorOverlay.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 resize_timer_active_(false), 186 resize_timer_active_(false),
187 omit_tooltip_(false), 187 omit_tooltip_(false),
188 timer_(TaskRunnerHelper::Get(TaskType::kUnspecedTimer, 188 timer_(TaskRunnerHelper::Get(TaskType::kUnspecedTimer,
189 frame_impl->GetFrame()), 189 frame_impl->GetFrame()),
190 this, 190 this,
191 &InspectorOverlay::OnTimer), 191 &InspectorOverlay::OnTimer),
192 suspended_(false), 192 suspended_(false),
193 show_reloading_blanket_(false), 193 show_reloading_blanket_(false),
194 in_layout_(false), 194 in_layout_(false),
195 needs_update_(false), 195 needs_update_(false),
196 swallow_next_mouse_up_(false),
196 inspect_mode_(InspectorDOMAgent::kNotSearching) {} 197 inspect_mode_(InspectorDOMAgent::kNotSearching) {}
197 198
198 InspectorOverlay::~InspectorOverlay() { 199 InspectorOverlay::~InspectorOverlay() {
199 DCHECK(!overlay_page_); 200 DCHECK(!overlay_page_);
200 } 201 }
201 202
202 DEFINE_TRACE(InspectorOverlay) { 203 DEFINE_TRACE(InspectorOverlay) {
203 visitor->Trace(frame_impl_); 204 visitor->Trace(frame_impl_);
204 visitor->Trace(highlight_node_); 205 visitor->Trace(highlight_node_);
205 visitor->Trace(event_target_node_); 206 visitor->Trace(event_target_node_);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 OverlayMainFrame()->GetEventHandler().HandleGestureEvent(transformed_event); 257 OverlayMainFrame()->GetEventHandler().HandleGestureEvent(transformed_event);
257 } 258 }
258 if (WebInputEvent::IsMouseEventType(input_event.GetType())) { 259 if (WebInputEvent::IsMouseEventType(input_event.GetType())) {
259 WebMouseEvent mouse_event = 260 WebMouseEvent mouse_event =
260 TransformWebMouseEvent(frame_impl_->GetFrameView(), 261 TransformWebMouseEvent(frame_impl_->GetFrameView(),
261 static_cast<const WebMouseEvent&>(input_event)); 262 static_cast<const WebMouseEvent&>(input_event));
262 263
263 if (mouse_event.GetType() == WebInputEvent::kMouseMove) 264 if (mouse_event.GetType() == WebInputEvent::kMouseMove)
264 handled = HandleMouseMove(mouse_event); 265 handled = HandleMouseMove(mouse_event);
265 else if (mouse_event.GetType() == WebInputEvent::kMouseDown) 266 else if (mouse_event.GetType() == WebInputEvent::kMouseDown)
266 handled = HandleMousePress(); 267 handled = HandleMouseDown();
268 else if (mouse_event.GetType() == WebInputEvent::kMouseUp)
269 handled = HandleMouseUp();
267 270
268 if (handled) 271 if (handled)
269 return true; 272 return true;
270 273
271 if (mouse_event.GetType() == WebInputEvent::kMouseMove) { 274 if (mouse_event.GetType() == WebInputEvent::kMouseMove) {
272 handled = OverlayMainFrame()->GetEventHandler().HandleMouseMoveEvent( 275 handled = OverlayMainFrame()->GetEventHandler().HandleMouseMoveEvent(
273 mouse_event, TransformWebMouseEventVector( 276 mouse_event, TransformWebMouseEventVector(
274 frame_impl_->GetFrameView(), 277 frame_impl_->GetFrameView(),
275 std::vector<const WebInputEvent*>())) != 278 std::vector<const WebInputEvent*>())) !=
276 WebInputEventResult::kNotHandled; 279 WebInputEventResult::kNotHandled;
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after
759 hovered_node_for_inspect_mode_ = node; 762 hovered_node_for_inspect_mode_ = node;
760 if (dom_agent_) 763 if (dom_agent_)
761 dom_agent_->NodeHighlightedInOverlay(node); 764 dom_agent_->NodeHighlightedInOverlay(node);
762 HighlightNode(node, event_target, *inspect_mode_highlight_config_, 765 HighlightNode(node, event_target, *inspect_mode_highlight_config_,
763 (event.GetModifiers() & 766 (event.GetModifiers() &
764 (WebInputEvent::kControlKey | WebInputEvent::kMetaKey))); 767 (WebInputEvent::kControlKey | WebInputEvent::kMetaKey)));
765 } 768 }
766 return true; 769 return true;
767 } 770 }
768 771
769 bool InspectorOverlay::HandleMousePress() { 772 bool InspectorOverlay::HandleMouseDown() {
773 swallow_next_mouse_up_ = false;
770 if (!ShouldSearchForNode()) 774 if (!ShouldSearchForNode())
771 return false; 775 return false;
772 776
773 if (hovered_node_for_inspect_mode_) { 777 if (hovered_node_for_inspect_mode_) {
778 swallow_next_mouse_up_ = true;
774 Inspect(hovered_node_for_inspect_mode_.Get()); 779 Inspect(hovered_node_for_inspect_mode_.Get());
775 hovered_node_for_inspect_mode_.Clear(); 780 hovered_node_for_inspect_mode_.Clear();
776 return true; 781 return true;
777 } 782 }
778 return false; 783 return false;
779 } 784 }
780 785
786 bool InspectorOverlay::HandleMouseUp() {
787 if (swallow_next_mouse_up_) {
788 swallow_next_mouse_up_ = false;
789 return true;
790 }
791 return false;
792 }
793
781 bool InspectorOverlay::HandleGestureEvent(const WebGestureEvent& event) { 794 bool InspectorOverlay::HandleGestureEvent(const WebGestureEvent& event) {
782 if (!ShouldSearchForNode() || event.GetType() != WebInputEvent::kGestureTap) 795 if (!ShouldSearchForNode() || event.GetType() != WebInputEvent::kGestureTap)
783 return false; 796 return false;
784 Node* node = HoveredNodeForEvent(frame_impl_->GetFrame(), event, false); 797 Node* node = HoveredNodeForEvent(frame_impl_->GetFrame(), event, false);
785 if (node && inspect_mode_highlight_config_) { 798 if (node && inspect_mode_highlight_config_) {
786 HighlightNode(node, *inspect_mode_highlight_config_, false); 799 HighlightNode(node, *inspect_mode_highlight_config_, false);
787 Inspect(node); 800 Inspect(node);
788 return true; 801 return true;
789 } 802 }
790 return false; 803 return false;
(...skipping 14 matching lines...) Expand all
805 bool InspectorOverlay::ShouldSearchForNode() { 818 bool InspectorOverlay::ShouldSearchForNode() {
806 return inspect_mode_ != InspectorDOMAgent::kNotSearching; 819 return inspect_mode_ != InspectorDOMAgent::kNotSearching;
807 } 820 }
808 821
809 void InspectorOverlay::Inspect(Node* node) { 822 void InspectorOverlay::Inspect(Node* node) {
810 if (dom_agent_) 823 if (dom_agent_)
811 dom_agent_->Inspect(node); 824 dom_agent_->Inspect(node);
812 } 825 }
813 826
814 } // namespace blink 827 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/InspectorOverlay.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698