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

Side by Side Diff: third_party/WebKit/Source/platform/scroll/Scrollbar.cpp

Issue 2539283002: Remove PlatformGestureEvent in favour of using WebGestureEvent (Closed)
Patch Set: Add missing copyright on new file Created 4 years 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) 2004, 2006, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2006, 2008 Apple 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 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * 12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */ 24 */
25 25
26 #include "platform/scroll/Scrollbar.h" 26 #include "platform/scroll/Scrollbar.h"
27 27
28 #include <algorithm> 28 #include <algorithm>
29 #include "platform/HostWindow.h" 29 #include "platform/HostWindow.h"
30 #include "platform/PlatformGestureEvent.h"
31 #include "platform/PlatformMouseEvent.h" 30 #include "platform/PlatformMouseEvent.h"
32 #include "platform/geometry/FloatRect.h" 31 #include "platform/geometry/FloatRect.h"
33 #include "platform/graphics/paint/CullRect.h" 32 #include "platform/graphics/paint/CullRect.h"
34 #include "platform/scroll/ScrollAnimatorBase.h" 33 #include "platform/scroll/ScrollAnimatorBase.h"
35 #include "platform/scroll/ScrollableArea.h" 34 #include "platform/scroll/ScrollableArea.h"
36 #include "platform/scroll/ScrollbarTheme.h" 35 #include "platform/scroll/ScrollbarTheme.h"
36 #include "public/platform/WebGestureEvent.h"
37 37
38 namespace blink { 38 namespace blink {
39 39
40 Scrollbar::Scrollbar(ScrollableArea* scrollableArea, 40 Scrollbar::Scrollbar(ScrollableArea* scrollableArea,
41 ScrollbarOrientation orientation, 41 ScrollbarOrientation orientation,
42 ScrollbarControlSize controlSize, 42 ScrollbarControlSize controlSize,
43 HostWindow* hostWindow, 43 HostWindow* hostWindow,
44 ScrollbarTheme* theme) 44 ScrollbarTheme* theme)
45 : m_scrollableArea(scrollableArea), 45 : m_scrollableArea(scrollableArea),
46 m_orientation(orientation), 46 m_orientation(orientation),
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 void Scrollbar::setPressedPart(ScrollbarPart part) { 313 void Scrollbar::setPressedPart(ScrollbarPart part) {
314 if (m_pressedPart != NoPart 314 if (m_pressedPart != NoPart
315 // When we no longer have a pressed part, we can start drawing a hovered 315 // When we no longer have a pressed part, we can start drawing a hovered
316 // state on the hovered part. 316 // state on the hovered part.
317 || m_hoveredPart != NoPart) 317 || m_hoveredPart != NoPart)
318 setNeedsPaintInvalidation( 318 setNeedsPaintInvalidation(
319 static_cast<ScrollbarPart>(m_pressedPart | m_hoveredPart | part)); 319 static_cast<ScrollbarPart>(m_pressedPart | m_hoveredPart | part));
320 m_pressedPart = part; 320 m_pressedPart = part;
321 } 321 }
322 322
323 bool Scrollbar::gestureEvent(const PlatformGestureEvent& evt, 323 bool Scrollbar::gestureEvent(const WebGestureEvent& evt,
324 bool* shouldUpdateCapture) { 324 bool* shouldUpdateCapture) {
325 DCHECK(shouldUpdateCapture); 325 DCHECK(shouldUpdateCapture);
326 switch (evt.type()) { 326 switch (evt.type) {
327 case PlatformEvent::GestureTapDown: 327 case WebInputEvent::GestureTapDown: {
328 setPressedPart(theme().hitTest(*this, evt.position())); 328 IntPoint position = flooredIntPoint(evt.positionInRootFrame());
329 setPressedPart(theme().hitTest(*this, position));
329 m_pressedPos = orientation() == HorizontalScrollbar 330 m_pressedPos = orientation() == HorizontalScrollbar
330 ? convertFromRootFrame(evt.position()).x() 331 ? convertFromRootFrame(position).x()
331 : convertFromRootFrame(evt.position()).y(); 332 : convertFromRootFrame(position).y();
332 *shouldUpdateCapture = true; 333 *shouldUpdateCapture = true;
333 return true; 334 return true;
334 case PlatformEvent::GestureTapDownCancel: 335 }
336 case WebInputEvent::GestureTapCancel:
335 if (m_pressedPart != ThumbPart) 337 if (m_pressedPart != ThumbPart)
336 return false; 338 return false;
337 m_scrollPos = m_pressedPos; 339 m_scrollPos = m_pressedPos;
338 return true; 340 return true;
339 case PlatformEvent::GestureScrollBegin: 341 case WebInputEvent::GestureScrollBegin:
340 switch (evt.source()) { 342 switch (evt.sourceDevice) {
341 case PlatformGestureSourceTouchpad: 343 case WebGestureDeviceTouchpad:
342 // Update the state on GSB for touchpad since GestureTapDown 344 // Update the state on GSB for touchpad since GestureTapDown
343 // is not generated by that device. Touchscreen uses the tap down 345 // is not generated by that device. Touchscreen uses the tap down
344 // gesture since the scrollbar enters a visual active state. 346 // gesture since the scrollbar enters a visual active state.
345 *shouldUpdateCapture = true; 347 *shouldUpdateCapture = true;
346 setPressedPart(NoPart); 348 setPressedPart(NoPart);
347 m_pressedPos = 0; 349 m_pressedPos = 0;
348 return true; 350 return true;
349 case PlatformGestureSourceTouchscreen: 351 case WebGestureDeviceTouchscreen:
350 if (m_pressedPart != ThumbPart) 352 if (m_pressedPart != ThumbPart)
351 return false; 353 return false;
352 m_scrollPos = m_pressedPos; 354 m_scrollPos = m_pressedPos;
353 return true; 355 return true;
354 default: 356 default:
355 ASSERT_NOT_REACHED(); 357 ASSERT_NOT_REACHED();
356 return true; 358 return true;
357 } 359 }
358 break; 360 break;
359 case PlatformEvent::GestureScrollUpdate: 361 case WebInputEvent::GestureScrollUpdate:
360 switch (evt.source()) { 362 switch (evt.sourceDevice) {
361 case PlatformGestureSourceTouchpad: { 363 case WebGestureDeviceTouchpad: {
362 FloatSize delta(-evt.deltaX(), -evt.deltaY()); 364 FloatSize delta(-evt.deltaXInRootFrame(), -evt.deltaYInRootFrame());
363 if (m_scrollableArea && 365 if (m_scrollableArea &&
364 m_scrollableArea->userScroll(evt.deltaUnits(), delta) 366 m_scrollableArea
367 ->userScroll(toPlatformScrollGranularity(evt.deltaUnits()),
368 delta)
365 .didScroll()) { 369 .didScroll()) {
366 return true; 370 return true;
367 } 371 }
368 return false; 372 return false;
369 } 373 }
370 case PlatformGestureSourceTouchscreen: 374 case WebGestureDeviceTouchscreen:
371 if (m_pressedPart != ThumbPart) 375 if (m_pressedPart != ThumbPart)
372 return false; 376 return false;
373 m_scrollPos += orientation() == HorizontalScrollbar ? evt.deltaX() 377 m_scrollPos += orientation() == HorizontalScrollbar
374 : evt.deltaY(); 378 ? evt.deltaXInRootFrame()
379 : evt.deltaYInRootFrame();
375 moveThumb(m_scrollPos, false); 380 moveThumb(m_scrollPos, false);
376 return true; 381 return true;
377 default: 382 default:
378 ASSERT_NOT_REACHED(); 383 ASSERT_NOT_REACHED();
379 return true; 384 return true;
380 } 385 }
381 break; 386 break;
382 case PlatformEvent::GestureScrollEnd: 387 case WebInputEvent::GestureScrollEnd:
383 case PlatformEvent::GestureLongPress: 388 case WebInputEvent::GestureLongPress:
384 case PlatformEvent::GestureFlingStart: 389 case WebInputEvent::GestureFlingStart:
385 m_scrollPos = 0; 390 m_scrollPos = 0;
386 m_pressedPos = 0; 391 m_pressedPos = 0;
387 setPressedPart(NoPart); 392 setPressedPart(NoPart);
388 return false; 393 return false;
389 case PlatformEvent::GestureTap: { 394 case WebInputEvent::GestureTap: {
390 if (m_pressedPart != ThumbPart && m_pressedPart != NoPart && 395 if (m_pressedPart != ThumbPart && m_pressedPart != NoPart &&
391 m_scrollableArea && 396 m_scrollableArea &&
392 m_scrollableArea 397 m_scrollableArea
393 ->userScroll( 398 ->userScroll(
394 pressedPartScrollGranularity(), 399 pressedPartScrollGranularity(),
395 toScrollDelta(pressedPartScrollDirectionPhysical(), 1)) 400 toScrollDelta(pressedPartScrollDirectionPhysical(), 1))
396 .didScroll()) { 401 .didScroll()) {
397 return true; 402 return true;
398 } 403 }
399 m_scrollPos = 0; 404 m_scrollPos = 0;
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 invalidParts = AllParts; 628 invalidParts = AllParts;
624 if (invalidParts & ~ThumbPart) 629 if (invalidParts & ~ThumbPart)
625 m_trackNeedsRepaint = true; 630 m_trackNeedsRepaint = true;
626 if (invalidParts & ThumbPart) 631 if (invalidParts & ThumbPart)
627 m_thumbNeedsRepaint = true; 632 m_thumbNeedsRepaint = true;
628 if (m_scrollableArea) 633 if (m_scrollableArea)
629 m_scrollableArea->setScrollbarNeedsPaintInvalidation(orientation()); 634 m_scrollableArea->setScrollbarNeedsPaintInvalidation(orientation());
630 } 635 }
631 636
632 } // namespace blink 637 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/scroll/Scrollbar.h ('k') | third_party/WebKit/Source/web/DevToolsEmulator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698