| OLD | NEW |
| 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/events/event.h" | 5 #include "ui/events/event.h" |
| 6 | 6 |
| 7 #if defined(USE_X11) | 7 #if defined(USE_X11) |
| 8 #include <X11/extensions/XInput2.h> | 8 #include <X11/extensions/XInput2.h> |
| 9 #include <X11/keysym.h> | 9 #include <X11/keysym.h> |
| 10 #include <X11/Xlib.h> | 10 #include <X11/Xlib.h> |
| (...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 638 return false; | 638 return false; |
| 639 if (event.type() == ui::ET_KEY_RELEASED) { | 639 if (event.type() == ui::ET_KEY_RELEASED) { |
| 640 delete last_key_event_; | 640 delete last_key_event_; |
| 641 last_key_event_ = NULL; | 641 last_key_event_ = NULL; |
| 642 return false; | 642 return false; |
| 643 } | 643 } |
| 644 CHECK_EQ(ui::ET_KEY_PRESSED, event.type()); | 644 CHECK_EQ(ui::ET_KEY_PRESSED, event.type()); |
| 645 if (!last_key_event_) { | 645 if (!last_key_event_) { |
| 646 last_key_event_ = new KeyEvent(event); | 646 last_key_event_ = new KeyEvent(event); |
| 647 return false; | 647 return false; |
| 648 } else if (event.time_stamp() == last_key_event_->time_stamp()) { |
| 649 // The KeyEvent is created from the same native event. |
| 650 return (last_key_event_->flags() & ui::EF_IS_REPEAT) != 0; |
| 648 } | 651 } |
| 649 if (event.key_code() == last_key_event_->key_code() && | 652 if (event.key_code() == last_key_event_->key_code() && |
| 650 event.flags() == last_key_event_->flags() && | 653 event.flags() == (last_key_event_->flags() & ~ui::EF_IS_REPEAT) && |
| 651 (event.time_stamp() - last_key_event_->time_stamp()).InMilliseconds() < | 654 (event.time_stamp() - last_key_event_->time_stamp()).InMilliseconds() < |
| 652 kMaxAutoRepeatTimeMs) { | 655 kMaxAutoRepeatTimeMs) { |
| 653 last_key_event_->set_time_stamp(event.time_stamp()); | 656 last_key_event_->set_time_stamp(event.time_stamp()); |
| 657 last_key_event_->set_flags(last_key_event_->flags() | ui::EF_IS_REPEAT); |
| 654 return true; | 658 return true; |
| 655 } | 659 } |
| 656 delete last_key_event_; | 660 delete last_key_event_; |
| 657 last_key_event_ = new KeyEvent(event); | 661 last_key_event_ = new KeyEvent(event); |
| 658 return false; | 662 return false; |
| 659 } | 663 } |
| 660 | 664 |
| 661 KeyEvent::KeyEvent(const base::NativeEvent& native_event) | 665 KeyEvent::KeyEvent(const base::NativeEvent& native_event) |
| 662 : Event(native_event, | 666 : Event(native_event, |
| 663 EventTypeFromNative(native_event), | 667 EventTypeFromNative(native_event), |
| (...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 981 gfx::PointF(x, y), | 985 gfx::PointF(x, y), |
| 982 time_stamp, | 986 time_stamp, |
| 983 flags | EF_FROM_TOUCH), | 987 flags | EF_FROM_TOUCH), |
| 984 details_(details) { | 988 details_(details) { |
| 985 } | 989 } |
| 986 | 990 |
| 987 GestureEvent::~GestureEvent() { | 991 GestureEvent::~GestureEvent() { |
| 988 } | 992 } |
| 989 | 993 |
| 990 } // namespace ui | 994 } // namespace ui |
| OLD | NEW |