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

Unified Diff: ui/platform_window/x11/x11_window.cc

Issue 862093002: Split the event library into a cross-platform and native part. Part 1. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Rebase to ToT 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/x/events_x_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/platform_window/x11/x11_window.cc
diff --git a/ui/platform_window/x11/x11_window.cc b/ui/platform_window/x11/x11_window.cc
index e3a421c3de9be972d49bbfba5781607d9ca6dfce..e8a9852c195f01067dc788516df968a52a0fd17f 100644
--- a/ui/platform_window/x11/x11_window.cc
+++ b/ui/platform_window/x11/x11_window.cc
@@ -11,6 +11,7 @@
#include "ui/events/event.h"
#include "ui/events/event_utils.h"
+#include "ui/events/platform/platform_event_builder.h"
#include "ui/events/platform/platform_event_dispatcher.h"
#include "ui/events/platform/platform_event_source.h"
#include "ui/events/platform/x11/x11_event_source.h"
@@ -73,7 +74,7 @@ void X11Window::ProcessXInput2Event(XEvent* xev) {
switch (event_type) {
case ET_KEY_PRESSED:
case ET_KEY_RELEASED: {
- KeyEvent key_event(xev);
+ KeyEvent key_event = PlatformEventBuilder::BuildKeyEvent(xev);
delegate_->DispatchEvent(&key_event);
break;
}
@@ -81,19 +82,20 @@ void X11Window::ProcessXInput2Event(XEvent* xev) {
case ET_MOUSE_MOVED:
case ET_MOUSE_DRAGGED:
case ET_MOUSE_RELEASED: {
- MouseEvent mouse_event(xev);
+ MouseEvent mouse_event = PlatformEventBuilder::BuildMouseEvent(xev);
delegate_->DispatchEvent(&mouse_event);
break;
}
case ET_MOUSEWHEEL: {
- MouseWheelEvent wheel_event(xev);
+ MouseWheelEvent wheel_event =
+ PlatformEventBuilder::BuildMouseWheelEvent(xev);
delegate_->DispatchEvent(&wheel_event);
break;
}
case ET_SCROLL_FLING_START:
case ET_SCROLL_FLING_CANCEL:
case ET_SCROLL: {
- ScrollEvent scroll_event(xev);
+ ScrollEvent scroll_event = PlatformEventBuilder::BuildScrollEvent(xev);
delegate_->DispatchEvent(&scroll_event);
break;
}
@@ -101,8 +103,14 @@ void X11Window::ProcessXInput2Event(XEvent* xev) {
case ET_TOUCH_PRESSED:
case ET_TOUCH_CANCELLED:
case ET_TOUCH_RELEASED: {
- TouchEvent touch_event(xev);
+ TouchEvent touch_event = PlatformEventBuilder::BuildTouchEvent(xev);
+
+ if (touch_event.type() == ET_TOUCH_PRESSED)
+ IncrementTouchIdRefCount(xev);
+
delegate_->DispatchEvent(&touch_event);
+
+ ClearTouchIdIfReleased(xev);
break;
}
default:
@@ -260,14 +268,14 @@ uint32_t X11Window::DispatchEvent(const PlatformEvent& event) {
case EnterNotify: {
// EnterNotify creates ET_MOUSE_MOVED. Mark as synthesized as this is
// not real mouse move event.
- MouseEvent mouse_event(xev);
+ MouseEvent mouse_event = PlatformEventBuilder::BuildMouseEvent(xev);
CHECK_EQ(ET_MOUSE_MOVED, mouse_event.type());
mouse_event.set_flags(mouse_event.flags() | EF_IS_SYNTHESIZED);
delegate_->DispatchEvent(&mouse_event);
break;
}
case LeaveNotify: {
- MouseEvent mouse_event(xev);
+ MouseEvent mouse_event = PlatformEventBuilder::BuildMouseEvent(xev);
delegate_->DispatchEvent(&mouse_event);
break;
}
@@ -283,7 +291,7 @@ uint32_t X11Window::DispatchEvent(const PlatformEvent& event) {
case KeyPress:
case KeyRelease: {
- KeyEvent key_event(xev);
+ KeyEvent key_event = PlatformEventBuilder::BuildKeyEvent(xev);
delegate_->DispatchEvent(&key_event);
break;
}
@@ -292,13 +300,14 @@ uint32_t X11Window::DispatchEvent(const PlatformEvent& event) {
case ButtonRelease: {
switch (EventTypeFromNative(xev)) {
case ET_MOUSEWHEEL: {
- MouseWheelEvent mouseev(xev);
+ MouseWheelEvent mouseev =
+ PlatformEventBuilder::BuildMouseWheelEvent(xev);
delegate_->DispatchEvent(&mouseev);
break;
}
case ET_MOUSE_PRESSED:
case ET_MOUSE_RELEASED: {
- MouseEvent mouseev(xev);
+ MouseEvent mouseev = PlatformEventBuilder::BuildMouseEvent(xev);
delegate_->DispatchEvent(&mouseev);
break;
}
« no previous file with comments | « ui/events/x/events_x_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698