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

Unified Diff: ui/events/ozone/evdev/event_factory_evdev.cc

Issue 858333006: [PATCH 9.6/11] ozone: evdev: Remove extra PostTask during dispatch from EventFactoryEvdev (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/events/ozone/evdev/event_factory_evdev.h ('k') | ui/events/ozone/evdev/input_injector_evdev_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/ozone/evdev/event_factory_evdev.cc
diff --git a/ui/events/ozone/evdev/event_factory_evdev.cc b/ui/events/ozone/evdev/event_factory_evdev.cc
index 3cda8856bc4fe7d017b2303446e813041a193a5f..bf95a38e04252b2f8040b9362592c268d81285c2 100644
--- a/ui/events/ozone/evdev/event_factory_evdev.cc
+++ b/ui/events/ozone/evdev/event_factory_evdev.cc
@@ -117,9 +117,10 @@ EventFactoryEvdev::EventFactoryEvdev(CursorDelegateEvdev* cursor,
KeyboardLayoutEngine* keyboard_layout)
: last_device_id_(0),
device_manager_(device_manager),
- dispatch_callback_(
- base::Bind(&EventFactoryEvdev::PostUiEvent, base::Unretained(this))),
- keyboard_(&modifiers_, keyboard_layout, dispatch_callback_),
+ keyboard_(&modifiers_,
+ keyboard_layout,
+ base::Bind(&EventFactoryEvdev::DispatchUiEvent,
+ base::Unretained(this))),
cursor_(cursor),
input_controller_(&keyboard_, &button_map_),
initialized_(false),
@@ -168,11 +169,11 @@ void EventFactoryEvdev::DispatchKeyEvent(int device_id,
void EventFactoryEvdev::DispatchMouseMoveEvent(int device_id,
const gfx::PointF& location) {
- scoped_ptr<MouseEvent> event(new MouseEvent(
- ui::ET_MOUSE_MOVED, location, location, modifiers_.GetModifierFlags(),
- /* changed_button_flags */ 0));
- event->set_source_device_id(device_id);
- PostUiEvent(event.Pass());
+ MouseEvent event(ui::ET_MOUSE_MOVED, location, location,
+ modifiers_.GetModifierFlags(),
+ /* changed_button_flags */ 0);
+ event.set_source_device_id(device_id);
+ DispatchUiEvent(&event);
}
void EventFactoryEvdev::DispatchMouseButtonEvent(int device_id,
@@ -202,31 +203,30 @@ void EventFactoryEvdev::DispatchMouseButtonEvent(int device_id,
int flag = modifiers_.GetEventFlagFromModifier(modifier);
modifiers_.UpdateModifier(modifier, down);
- scoped_ptr<MouseEvent> event(
- new MouseEvent(down ? ui::ET_MOUSE_PRESSED : ui::ET_MOUSE_RELEASED,
- location, location, modifiers_.GetModifierFlags() | flag,
- /* changed_button_flags */ flag));
- event->set_source_device_id(device_id);
- PostUiEvent(event.Pass());
+ MouseEvent event(down ? ui::ET_MOUSE_PRESSED : ui::ET_MOUSE_RELEASED,
+ location, location, modifiers_.GetModifierFlags() | flag,
+ /* changed_button_flags */ flag);
+ event.set_source_device_id(device_id);
+ DispatchUiEvent(&event);
}
void EventFactoryEvdev::DispatchMouseWheelEvent(int device_id,
const gfx::PointF& location,
const gfx::Vector2d& delta) {
- scoped_ptr<MouseWheelEvent> event(new MouseWheelEvent(
- delta, location, location, modifiers_.GetModifierFlags(),
- 0 /* changed_button_flags */));
- event->set_source_device_id(device_id);
- PostUiEvent(event.Pass());
+ MouseWheelEvent event(delta, location, location,
+ modifiers_.GetModifierFlags(),
+ 0 /* changed_button_flags */);
+ event.set_source_device_id(device_id);
+ DispatchUiEvent(&event);
}
void EventFactoryEvdev::DispatchScrollEvent(const ScrollEventParams& params) {
- scoped_ptr<ScrollEvent> event(new ScrollEvent(
- params.type, params.location, params.timestamp,
- modifiers_.GetModifierFlags(), params.delta.x(), params.delta.y(),
- params.ordinal_delta.x(), params.ordinal_delta.y(), params.finger_count));
- event->set_source_device_id(params.device_id);
- PostUiEvent(event.Pass());
+ ScrollEvent event(params.type, params.location, params.timestamp,
+ modifiers_.GetModifierFlags(), params.delta.x(),
+ params.delta.y(), params.ordinal_delta.x(),
+ params.ordinal_delta.y(), params.finger_count);
+ event.set_source_device_id(params.device_id);
+ DispatchUiEvent(&event);
}
void EventFactoryEvdev::DispatchTouchEvent(const TouchEventParams& params) {
@@ -242,21 +242,16 @@ void EventFactoryEvdev::DispatchTouchEvent(const TouchEventParams& params) {
&radius_x);
DeviceDataManager::GetInstance()->ApplyTouchRadiusScale(params.device_id,
&radius_y);
-
- scoped_ptr<TouchEvent> touch_event(new TouchEvent(
- params.type, gfx::PointF(x, y),
- /* flags */ 0, params.touch_id, params.timestamp, radius_x, radius_y,
- /* angle */ 0., params.pressure));
- touch_event->set_source_device_id(params.device_id);
- PostUiEvent(touch_event.Pass());
+ TouchEvent touch_event(params.type, gfx::PointF(x, y),
+ /* flags */ 0, params.touch_id, params.timestamp,
+ radius_x, radius_y,
+ /* angle */ 0.f, params.pressure);
+ touch_event.set_source_device_id(params.device_id);
+ DispatchUiEvent(&touch_event);
}
-void EventFactoryEvdev::PostUiEvent(scoped_ptr<Event> event) {
- base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE,
- base::Bind(&EventFactoryEvdev::DispatchUiEventTask,
- weak_ptr_factory_.GetWeakPtr(),
- base::Passed(&event)));
+void EventFactoryEvdev::DispatchUiEvent(Event* event) {
alexst (slow to review) 2015/01/28 19:04:58 Is there a reason we can't just remove this method
spang 2015/01/28 19:38:05 The only reason is that because there's an implici
+ DispatchEvent(event);
}
void EventFactoryEvdev::DispatchKeyboardDevicesUpdated(
@@ -283,9 +278,6 @@ void EventFactoryEvdev::DispatchTouchpadDevicesUpdated(
input_controller_.SetHasTouchpad(devices.size() != 0);
}
-void EventFactoryEvdev::DispatchUiEventTask(scoped_ptr<Event> event) {
- DispatchEvent(event.get());
-}
void EventFactoryEvdev::OnDeviceEvent(const DeviceEvent& event) {
if (event.device_type() != DeviceEvent::INPUT)
@@ -313,14 +305,15 @@ void EventFactoryEvdev::OnDispatcherListChanged() {
void EventFactoryEvdev::WarpCursorTo(gfx::AcceleratedWidget widget,
const gfx::PointF& location) {
- if (cursor_) {
- cursor_->MoveCursorTo(widget, location);
- PostUiEvent(make_scoped_ptr(new MouseEvent(ET_MOUSE_MOVED,
- cursor_->GetLocation(),
- cursor_->GetLocation(),
- modifiers_.GetModifierFlags(),
- /* changed_button_flags */ 0)));
- }
+ if (!cursor_)
+ return;
+
+ cursor_->MoveCursorTo(widget, location);
+
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
+ FROM_HERE, base::Bind(&EventFactoryEvdev::DispatchMouseMoveEvent,
+ weak_ptr_factory_.GetWeakPtr(), -1 /* device_id */,
+ cursor_->GetLocation()));
}
int EventFactoryEvdev::NextDeviceId() {
« no previous file with comments | « ui/events/ozone/evdev/event_factory_evdev.h ('k') | ui/events/ozone/evdev/input_injector_evdev_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698