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

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

Issue 2573073003: Collapse the API surface on WebInputEvent via accessor functions. (Closed)
Patch Set: Fix nits Created 3 years, 11 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 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/input/ScrollManager.h" 5 #include "core/input/ScrollManager.h"
6 6
7 #include "core/dom/DOMNodeIds.h" 7 #include "core/dom/DOMNodeIds.h"
8 #include "core/events/GestureEvent.h" 8 #include "core/events/GestureEvent.h"
9 #include "core/frame/BrowserControls.h" 9 #include "core/frame/BrowserControls.h"
10 #include "core/frame/FrameHost.h" 10 #include "core/frame/FrameHost.h"
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 gestureEvent.sourceDevice == WebGestureDeviceTouchscreen; 233 gestureEvent.sourceDevice == WebGestureDeviceTouchscreen;
234 scrollStateData->delta_consumed_for_scroll_sequence = 234 scrollStateData->delta_consumed_for_scroll_sequence =
235 m_deltaConsumedForScrollSequence; 235 m_deltaConsumedForScrollSequence;
236 ScrollState* scrollState = ScrollState::create(std::move(scrollStateData)); 236 ScrollState* scrollState = ScrollState::create(std::move(scrollStateData));
237 customizedScroll(*m_scrollGestureHandlingNode.get(), *scrollState); 237 customizedScroll(*m_scrollGestureHandlingNode.get(), *scrollState);
238 return WebInputEventResult::HandledSystem; 238 return WebInputEventResult::HandledSystem;
239 } 239 }
240 240
241 WebInputEventResult ScrollManager::handleGestureScrollUpdate( 241 WebInputEventResult ScrollManager::handleGestureScrollUpdate(
242 const WebGestureEvent& gestureEvent) { 242 const WebGestureEvent& gestureEvent) {
243 DCHECK_EQ(gestureEvent.type, WebInputEvent::GestureScrollUpdate); 243 DCHECK_EQ(gestureEvent.type(), WebInputEvent::GestureScrollUpdate);
244 244
245 Node* node = m_scrollGestureHandlingNode.get(); 245 Node* node = m_scrollGestureHandlingNode.get();
246 if (!node || !node->layoutObject()) 246 if (!node || !node->layoutObject())
247 return WebInputEventResult::NotHandled; 247 return WebInputEventResult::NotHandled;
248 248
249 // Negate the deltas since the gesture event stores finger movement and 249 // Negate the deltas since the gesture event stores finger movement and
250 // scrolling occurs in the direction opposite the finger's movement 250 // scrolling occurs in the direction opposite the finger's movement
251 // direction. e.g. Finger moving up has negative event delta but causes the 251 // direction. e.g. Finger moving up has negative event delta but causes the
252 // page to scroll down causing positive scroll delta. 252 // page to scroll down causing positive scroll delta.
253 FloatSize delta(-gestureEvent.deltaXInRootFrame(), 253 FloatSize delta(-gestureEvent.deltaXInRootFrame(),
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 return m_frame->document()->rootScrollerController().scrollsViewport(element); 378 return m_frame->document()->rootScrollerController().scrollsViewport(element);
379 } 379 }
380 380
381 WebInputEventResult ScrollManager::handleGestureScrollEvent( 381 WebInputEventResult ScrollManager::handleGestureScrollEvent(
382 const WebGestureEvent& gestureEvent) { 382 const WebGestureEvent& gestureEvent) {
383 if (!m_frame->view()) 383 if (!m_frame->view())
384 return WebInputEventResult::NotHandled; 384 return WebInputEventResult::NotHandled;
385 385
386 Node* eventTarget = nullptr; 386 Node* eventTarget = nullptr;
387 Scrollbar* scrollbar = nullptr; 387 Scrollbar* scrollbar = nullptr;
388 if (gestureEvent.type != WebInputEvent::GestureScrollBegin) { 388 if (gestureEvent.type() != WebInputEvent::GestureScrollBegin) {
389 scrollbar = m_scrollbarHandlingScrollGesture.get(); 389 scrollbar = m_scrollbarHandlingScrollGesture.get();
390 eventTarget = m_scrollGestureHandlingNode.get(); 390 eventTarget = m_scrollGestureHandlingNode.get();
391 } 391 }
392 392
393 if (!eventTarget) { 393 if (!eventTarget) {
394 Document* document = m_frame->document(); 394 Document* document = m_frame->document();
395 if (document->layoutViewItem().isNull()) 395 if (document->layoutViewItem().isNull())
396 return WebInputEventResult::NotHandled; 396 return WebInputEventResult::NotHandled;
397 397
398 FrameView* view = m_frame->view(); 398 FrameView* view = m_frame->view();
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 DispatchEventResult gestureDomEventResult = 433 DispatchEventResult gestureDomEventResult =
434 eventTarget->dispatchEvent(gestureDomEvent); 434 eventTarget->dispatchEvent(gestureDomEvent);
435 if (gestureDomEventResult != DispatchEventResult::NotCanceled) { 435 if (gestureDomEventResult != DispatchEventResult::NotCanceled) {
436 DCHECK(gestureDomEventResult != 436 DCHECK(gestureDomEventResult !=
437 DispatchEventResult::CanceledByEventHandler); 437 DispatchEventResult::CanceledByEventHandler);
438 return EventHandlingUtil::toWebInputEventResult(gestureDomEventResult); 438 return EventHandlingUtil::toWebInputEventResult(gestureDomEventResult);
439 } 439 }
440 } 440 }
441 } 441 }
442 442
443 switch (gestureEvent.type) { 443 switch (gestureEvent.type()) {
444 case WebInputEvent::GestureScrollBegin: 444 case WebInputEvent::GestureScrollBegin:
445 return handleGestureScrollBegin(gestureEvent); 445 return handleGestureScrollBegin(gestureEvent);
446 case WebInputEvent::GestureScrollUpdate: 446 case WebInputEvent::GestureScrollUpdate:
447 return handleGestureScrollUpdate(gestureEvent); 447 return handleGestureScrollUpdate(gestureEvent);
448 case WebInputEvent::GestureScrollEnd: 448 case WebInputEvent::GestureScrollEnd:
449 return handleGestureScrollEnd(gestureEvent); 449 return handleGestureScrollEnd(gestureEvent);
450 case WebInputEvent::GestureFlingStart: 450 case WebInputEvent::GestureFlingStart:
451 case WebInputEvent::GesturePinchBegin: 451 case WebInputEvent::GesturePinchBegin:
452 case WebInputEvent::GesturePinchEnd: 452 case WebInputEvent::GesturePinchEnd:
453 case WebInputEvent::GesturePinchUpdate: 453 case WebInputEvent::GesturePinchUpdate:
454 return WebInputEventResult::NotHandled; 454 return WebInputEventResult::NotHandled;
455 default: 455 default:
456 NOTREACHED(); 456 NOTREACHED();
457 return WebInputEventResult::NotHandled; 457 return WebInputEventResult::NotHandled;
458 } 458 }
459 } 459 }
460 460
461 bool ScrollManager::isScrollbarHandlingGestures() const { 461 bool ScrollManager::isScrollbarHandlingGestures() const {
462 return m_scrollbarHandlingScrollGesture.get(); 462 return m_scrollbarHandlingScrollGesture.get();
463 } 463 }
464 464
465 bool ScrollManager::handleScrollGestureOnResizer( 465 bool ScrollManager::handleScrollGestureOnResizer(
466 Node* eventTarget, 466 Node* eventTarget,
467 const WebGestureEvent& gestureEvent) { 467 const WebGestureEvent& gestureEvent) {
468 if (gestureEvent.sourceDevice != WebGestureDeviceTouchscreen) 468 if (gestureEvent.sourceDevice != WebGestureDeviceTouchscreen)
469 return false; 469 return false;
470 470
471 if (gestureEvent.type == WebInputEvent::GestureScrollBegin) { 471 if (gestureEvent.type() == WebInputEvent::GestureScrollBegin) {
472 PaintLayer* layer = eventTarget->layoutObject() 472 PaintLayer* layer = eventTarget->layoutObject()
473 ? eventTarget->layoutObject()->enclosingLayer() 473 ? eventTarget->layoutObject()->enclosingLayer()
474 : nullptr; 474 : nullptr;
475 IntPoint p = m_frame->view()->rootFrameToContents( 475 IntPoint p = m_frame->view()->rootFrameToContents(
476 flooredIntPoint(gestureEvent.positionInRootFrame())); 476 flooredIntPoint(gestureEvent.positionInRootFrame()));
477 if (layer && layer->getScrollableArea() && 477 if (layer && layer->getScrollableArea() &&
478 layer->getScrollableArea()->isPointInResizeControl(p, 478 layer->getScrollableArea()->isPointInResizeControl(p,
479 ResizerForTouch)) { 479 ResizerForTouch)) {
480 m_resizeScrollableArea = layer->getScrollableArea(); 480 m_resizeScrollableArea = layer->getScrollableArea();
481 m_resizeScrollableArea->setInResizeMode(true); 481 m_resizeScrollableArea->setInResizeMode(true);
482 m_offsetFromResizeCorner = 482 m_offsetFromResizeCorner =
483 LayoutSize(m_resizeScrollableArea->offsetFromResizeCorner(p)); 483 LayoutSize(m_resizeScrollableArea->offsetFromResizeCorner(p));
484 return true; 484 return true;
485 } 485 }
486 } else if (gestureEvent.type == WebInputEvent::GestureScrollUpdate) { 486 } else if (gestureEvent.type() == WebInputEvent::GestureScrollUpdate) {
487 if (m_resizeScrollableArea && m_resizeScrollableArea->inResizeMode()) { 487 if (m_resizeScrollableArea && m_resizeScrollableArea->inResizeMode()) {
488 IntPoint pos = roundedIntPoint(gestureEvent.positionInRootFrame()); 488 IntPoint pos = roundedIntPoint(gestureEvent.positionInRootFrame());
489 pos.move(gestureEvent.deltaXInRootFrame(), 489 pos.move(gestureEvent.deltaXInRootFrame(),
490 gestureEvent.deltaYInRootFrame()); 490 gestureEvent.deltaYInRootFrame());
491 m_resizeScrollableArea->resize(pos, m_offsetFromResizeCorner); 491 m_resizeScrollableArea->resize(pos, m_offsetFromResizeCorner);
492 return true; 492 return true;
493 } 493 }
494 } else if (gestureEvent.type == WebInputEvent::GestureScrollEnd) { 494 } else if (gestureEvent.type() == WebInputEvent::GestureScrollEnd) {
495 if (m_resizeScrollableArea && m_resizeScrollableArea->inResizeMode()) { 495 if (m_resizeScrollableArea && m_resizeScrollableArea->inResizeMode()) {
496 m_resizeScrollableArea->setInResizeMode(false); 496 m_resizeScrollableArea->setInResizeMode(false);
497 m_resizeScrollableArea = nullptr; 497 m_resizeScrollableArea = nullptr;
498 return false; 498 return false;
499 } 499 }
500 } 500 }
501 501
502 return false; 502 return false;
503 } 503 }
504 504
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 if (scrollbar->gestureEvent(targetedEvent.event(), &shouldUpdateCapture)) { 539 if (scrollbar->gestureEvent(targetedEvent.event(), &shouldUpdateCapture)) {
540 if (shouldUpdateCapture) 540 if (shouldUpdateCapture)
541 m_scrollbarHandlingScrollGesture = scrollbar; 541 m_scrollbarHandlingScrollGesture = scrollbar;
542 return true; 542 return true;
543 } 543 }
544 } 544 }
545 return false; 545 return false;
546 } 546 }
547 547
548 } // namespace blink 548 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/input/MouseEventManager.cpp ('k') | third_party/WebKit/Source/platform/WebGestureEvent.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698