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

Side by Side Diff: ui/base/events/event.cc

Issue 13594009: Correct scale for touch radius & scroll offset ordinal (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: tests added Created 7 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ui/base/events/event.h" 5 #include "ui/base/events/event.h"
6 6
7 #if defined(USE_X11) 7 #if defined(USE_X11)
8 #include <X11/Xlib.h> 8 #include <X11/Xlib.h>
9 #endif 9 #endif
10 10
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 } 455 }
456 456
457 TouchEvent::~TouchEvent() { 457 TouchEvent::~TouchEvent() {
458 } 458 }
459 459
460 void TouchEvent::Relocate(const gfx::Point& origin) { 460 void TouchEvent::Relocate(const gfx::Point& origin) {
461 location_ -= origin.OffsetFromOrigin(); 461 location_ -= origin.OffsetFromOrigin();
462 root_location_ -= origin.OffsetFromOrigin(); 462 root_location_ -= origin.OffsetFromOrigin();
463 } 463 }
464 464
465 void TouchEvent::UpdateForRootTransform(const gfx::Transform& root_transform) { 465 void TouchEvent::UpdateForRootTransform(
466 LocatedEvent::UpdateForRootTransform(root_transform); 466 const gfx::Transform& inverted_root_transform) {
467 LocatedEvent::UpdateForRootTransform(inverted_root_transform);
467 gfx::DecomposedTransform decomp; 468 gfx::DecomposedTransform decomp;
468 bool success = gfx::DecomposeTransform(&decomp, root_transform); 469 bool success = gfx::DecomposeTransform(&decomp, inverted_root_transform);
469 DCHECK(success); 470 DCHECK(success);
470 if (decomp.scale[0]) 471 if (decomp.scale[0])
471 radius_x_ /= decomp.scale[0]; 472 radius_x_ *= decomp.scale[0];
472 if (decomp.scale[1]) 473 if (decomp.scale[1])
473 radius_y_ /= decomp.scale[1]; 474 radius_y_ *= decomp.scale[1];
474 } 475 }
475 476
476 //////////////////////////////////////////////////////////////////////////////// 477 ////////////////////////////////////////////////////////////////////////////////
477 // KeyEvent 478 // KeyEvent
478 479
479 KeyEvent::KeyEvent(const base::NativeEvent& native_event, bool is_char) 480 KeyEvent::KeyEvent(const base::NativeEvent& native_event, bool is_char)
480 : Event(native_event, 481 : Event(native_event,
481 EventTypeFromNative(native_event), 482 EventTypeFromNative(native_event),
482 EventFlagsFromNative(native_event)), 483 EventFlagsFromNative(native_event)),
483 key_code_(KeyboardCodeFromNative(native_event)), 484 key_code_(KeyboardCodeFromNative(native_event)),
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 CHECK(IsScrollEvent()); 684 CHECK(IsScrollEvent());
684 } 685 }
685 686
686 void ScrollEvent::Scale(const float factor) { 687 void ScrollEvent::Scale(const float factor) {
687 x_offset_ *= factor; 688 x_offset_ *= factor;
688 y_offset_ *= factor; 689 y_offset_ *= factor;
689 x_offset_ordinal_ *= factor; 690 x_offset_ordinal_ *= factor;
690 y_offset_ordinal_ *= factor; 691 y_offset_ordinal_ *= factor;
691 } 692 }
692 693
693 void ScrollEvent::UpdateForRootTransform(const gfx::Transform& root_transform) { 694 void ScrollEvent::UpdateForRootTransform(
694 LocatedEvent::UpdateForRootTransform(root_transform); 695 const gfx::Transform& inverted_root_transform) {
696 LocatedEvent::UpdateForRootTransform(inverted_root_transform);
695 gfx::DecomposedTransform decomp; 697 gfx::DecomposedTransform decomp;
696 bool success = gfx::DecomposeTransform(&decomp, root_transform); 698 bool success = gfx::DecomposeTransform(&decomp, inverted_root_transform);
697 DCHECK(success); 699 DCHECK(success);
698 if (decomp.scale[0]) 700 if (decomp.scale[0])
699 x_offset_ordinal_ /= decomp.scale[0]; 701 x_offset_ordinal_ *= decomp.scale[0];
700 if (decomp.scale[1]) 702 if (decomp.scale[1])
701 y_offset_ordinal_ /= decomp.scale[1]; 703 y_offset_ordinal_ *= decomp.scale[1];
702 } 704 }
703 705
704 //////////////////////////////////////////////////////////////////////////////// 706 ////////////////////////////////////////////////////////////////////////////////
705 // GestureEvent 707 // GestureEvent
706 708
707 GestureEvent::GestureEvent(EventType type, 709 GestureEvent::GestureEvent(EventType type,
708 int x, 710 int x,
709 int y, 711 int y,
710 int flags, 712 int flags,
711 base::TimeDelta time_stamp, 713 base::TimeDelta time_stamp,
(...skipping 14 matching lines...) Expand all
726 int GestureEvent::GetLowestTouchId() const { 728 int GestureEvent::GetLowestTouchId() const {
727 if (touch_ids_bitfield_ == 0) 729 if (touch_ids_bitfield_ == 0)
728 return -1; 730 return -1;
729 int i = -1; 731 int i = -1;
730 // Find the index of the least significant 1 bit 732 // Find the index of the least significant 1 bit
731 while (!(1 << ++i & touch_ids_bitfield_)); 733 while (!(1 << ++i & touch_ids_bitfield_));
732 return i; 734 return i;
733 } 735 }
734 736
735 } // namespace ui 737 } // namespace ui
OLDNEW
« ash/display/display_controller_unittest.cc ('K') | « ui/base/events/event.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698