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

Side by Side Diff: ui/events/platform/x11/x11_event_source_libevent.cc

Issue 2259753003: Re-write many calls to WrapUnique() with MakeUnique() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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
« no previous file with comments | « ui/events/platform/x11/x11_event_source_glib.cc ('k') | ui/events/test/event_generator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/platform/x11/x11_event_source_libevent.h" 5 #include "ui/events/platform/x11/x11_event_source_libevent.h"
6 6
7 #include <X11/Xlib.h> 7 #include <X11/Xlib.h>
8 #include <X11/extensions/XInput2.h> 8 #include <X11/extensions/XInput2.h>
9 9
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
11 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
12 #include "ui/events/event.h" 12 #include "ui/events/event.h"
13 #include "ui/events/event_utils.h" 13 #include "ui/events/event_utils.h"
14 #include "ui/events/keycodes/keyboard_code_conversion_x.h" 14 #include "ui/events/keycodes/keyboard_code_conversion_x.h"
15 #include "ui/events/platform/platform_event_dispatcher.h" 15 #include "ui/events/platform/platform_event_dispatcher.h"
16 #include "ui/events/x/events_x_utils.h" 16 #include "ui/events/x/events_x_utils.h"
17 17
18 namespace ui { 18 namespace ui {
19 19
20 namespace { 20 namespace {
21 21
22 // Translates XI2 XEvent into a ui::Event. 22 // Translates XI2 XEvent into a ui::Event.
23 std::unique_ptr<ui::Event> TranslateXI2EventToEvent(const XEvent& xev) { 23 std::unique_ptr<ui::Event> TranslateXI2EventToEvent(const XEvent& xev) {
24 EventType event_type = EventTypeFromXEvent(xev); 24 EventType event_type = EventTypeFromXEvent(xev);
25 switch (event_type) { 25 switch (event_type) {
26 case ET_KEY_PRESSED: 26 case ET_KEY_PRESSED:
27 case ET_KEY_RELEASED: 27 case ET_KEY_RELEASED:
28 return base::WrapUnique(new KeyEvent(event_type, 28 return base::MakeUnique<KeyEvent>(event_type,
29 KeyboardCodeFromXKeyEvent(&xev), 29 KeyboardCodeFromXKeyEvent(&xev),
30 EventFlagsFromXEvent(xev))); 30 EventFlagsFromXEvent(xev));
31 case ET_MOUSE_PRESSED: 31 case ET_MOUSE_PRESSED:
32 case ET_MOUSE_MOVED: 32 case ET_MOUSE_MOVED:
33 case ET_MOUSE_DRAGGED: 33 case ET_MOUSE_DRAGGED:
34 case ET_MOUSE_RELEASED: 34 case ET_MOUSE_RELEASED:
35 return base::WrapUnique( 35 return base::MakeUnique<MouseEvent>(
36 new MouseEvent(event_type, EventLocationFromXEvent(xev), 36 event_type, EventLocationFromXEvent(xev),
37 EventSystemLocationFromXEvent(xev), 37 EventSystemLocationFromXEvent(xev), EventTimeFromXEvent(xev),
38 EventTimeFromXEvent(xev), EventFlagsFromXEvent(xev), 38 EventFlagsFromXEvent(xev), GetChangedMouseButtonFlagsFromXEvent(xev));
39 GetChangedMouseButtonFlagsFromXEvent(xev)));
40 case ET_MOUSEWHEEL: 39 case ET_MOUSEWHEEL:
41 return base::WrapUnique(new MouseWheelEvent( 40 return base::MakeUnique<MouseWheelEvent>(
42 GetMouseWheelOffsetFromXEvent(xev), EventLocationFromXEvent(xev), 41 GetMouseWheelOffsetFromXEvent(xev), EventLocationFromXEvent(xev),
43 EventSystemLocationFromXEvent(xev), EventTimeFromXEvent(xev), 42 EventSystemLocationFromXEvent(xev), EventTimeFromXEvent(xev),
44 EventFlagsFromXEvent(xev), 43 EventFlagsFromXEvent(xev), GetChangedMouseButtonFlagsFromXEvent(xev));
45 GetChangedMouseButtonFlagsFromXEvent(xev)));
46 case ET_SCROLL_FLING_START: 44 case ET_SCROLL_FLING_START:
47 case ET_SCROLL_FLING_CANCEL: { 45 case ET_SCROLL_FLING_CANCEL: {
48 float x_offset, y_offset, x_offset_ordinal, y_offset_ordinal; 46 float x_offset, y_offset, x_offset_ordinal, y_offset_ordinal;
49 GetFlingDataFromXEvent(xev, &x_offset, &y_offset, &x_offset_ordinal, 47 GetFlingDataFromXEvent(xev, &x_offset, &y_offset, &x_offset_ordinal,
50 &y_offset_ordinal, nullptr); 48 &y_offset_ordinal, nullptr);
51 return base::WrapUnique(new ScrollEvent( 49 return base::MakeUnique<ScrollEvent>(
52 event_type, EventLocationFromXEvent(xev), EventTimeFromXEvent(xev), 50 event_type, EventLocationFromXEvent(xev), EventTimeFromXEvent(xev),
53 EventFlagsFromXEvent(xev), x_offset, y_offset, x_offset_ordinal, 51 EventFlagsFromXEvent(xev), x_offset, y_offset, x_offset_ordinal,
54 y_offset_ordinal, 0)); 52 y_offset_ordinal, 0);
55 } 53 }
56 case ET_SCROLL: { 54 case ET_SCROLL: {
57 float x_offset, y_offset, x_offset_ordinal, y_offset_ordinal; 55 float x_offset, y_offset, x_offset_ordinal, y_offset_ordinal;
58 int finger_count; 56 int finger_count;
59 GetScrollOffsetsFromXEvent(xev, &x_offset, &y_offset, &x_offset_ordinal, 57 GetScrollOffsetsFromXEvent(xev, &x_offset, &y_offset, &x_offset_ordinal,
60 &y_offset_ordinal, &finger_count); 58 &y_offset_ordinal, &finger_count);
61 return base::WrapUnique(new ScrollEvent( 59 return base::MakeUnique<ScrollEvent>(
62 event_type, EventLocationFromXEvent(xev), EventTimeFromXEvent(xev), 60 event_type, EventLocationFromXEvent(xev), EventTimeFromXEvent(xev),
63 EventFlagsFromXEvent(xev), x_offset, y_offset, x_offset_ordinal, 61 EventFlagsFromXEvent(xev), x_offset, y_offset, x_offset_ordinal,
64 y_offset_ordinal, finger_count)); 62 y_offset_ordinal, finger_count);
65 } 63 }
66 case ET_TOUCH_MOVED: 64 case ET_TOUCH_MOVED:
67 case ET_TOUCH_PRESSED: 65 case ET_TOUCH_PRESSED:
68 case ET_TOUCH_CANCELLED: 66 case ET_TOUCH_CANCELLED:
69 case ET_TOUCH_RELEASED: 67 case ET_TOUCH_RELEASED:
70 return base::WrapUnique( 68 return base::MakeUnique<TouchEvent>(
71 new TouchEvent(event_type, 69 event_type, EventLocationFromXEvent(xev),
72 EventLocationFromXEvent(xev), 70 /* flags */ 0, GetTouchIdFromXEvent(xev), EventTimeFromXEvent(xev),
73 /* flags */ 0, 71 GetTouchRadiusXFromXEvent(xev), GetTouchRadiusYFromXEvent(xev),
74 GetTouchIdFromXEvent(xev), 72 /* angle */ 0.f, GetTouchForceFromXEvent(xev));
75 EventTimeFromXEvent(xev),
76 GetTouchRadiusXFromXEvent(xev),
77 GetTouchRadiusYFromXEvent(xev),
78 /* angle */ 0.f,
79 GetTouchForceFromXEvent(xev)));
80 case ET_UNKNOWN: 73 case ET_UNKNOWN:
81 return nullptr; 74 return nullptr;
82 default: 75 default:
83 break; 76 break;
84 } 77 }
85 return nullptr; 78 return nullptr;
86 } 79 }
87 80
88 // Translates a XEvent into a ui::Event. 81 // Translates a XEvent into a ui::Event.
89 std::unique_ptr<ui::Event> TranslateXEventToEvent(const XEvent& xev) { 82 std::unique_ptr<ui::Event> TranslateXEventToEvent(const XEvent& xev) {
90 int flags = EventFlagsFromXEvent(xev); 83 int flags = EventFlagsFromXEvent(xev);
91 switch (xev.type) { 84 switch (xev.type) {
92 case LeaveNotify: 85 case LeaveNotify:
93 case EnterNotify: 86 case EnterNotify:
94 // EnterNotify creates ET_MOUSE_MOVED. Mark as synthesized as this is 87 // EnterNotify creates ET_MOUSE_MOVED. Mark as synthesized as this is
95 // not real mouse move event. 88 // not real mouse move event.
96 if (xev.type == EnterNotify) 89 if (xev.type == EnterNotify)
97 flags |= EF_IS_SYNTHESIZED; 90 flags |= EF_IS_SYNTHESIZED;
98 return base::WrapUnique( 91 return base::MakeUnique<MouseEvent>(ET_MOUSE_MOVED,
99 new MouseEvent(ET_MOUSE_MOVED, EventLocationFromXEvent(xev), 92 EventLocationFromXEvent(xev),
100 EventSystemLocationFromXEvent(xev), 93 EventSystemLocationFromXEvent(xev),
101 EventTimeFromXEvent(xev), flags, 0)); 94 EventTimeFromXEvent(xev), flags, 0);
102 95
103 case KeyPress: 96 case KeyPress:
104 case KeyRelease: 97 case KeyRelease:
105 return base::WrapUnique(new KeyEvent( 98 return base::MakeUnique<KeyEvent>(EventTypeFromXEvent(xev),
106 EventTypeFromXEvent(xev), KeyboardCodeFromXKeyEvent(&xev), flags)); 99 KeyboardCodeFromXKeyEvent(&xev), flags);
107 100
108 case ButtonPress: 101 case ButtonPress:
109 case ButtonRelease: { 102 case ButtonRelease: {
110 switch (EventTypeFromXEvent(xev)) { 103 switch (EventTypeFromXEvent(xev)) {
111 case ET_MOUSEWHEEL: 104 case ET_MOUSEWHEEL:
112 return base::WrapUnique(new MouseWheelEvent( 105 return base::MakeUnique<MouseWheelEvent>(
113 GetMouseWheelOffsetFromXEvent(xev), EventLocationFromXEvent(xev), 106 GetMouseWheelOffsetFromXEvent(xev), EventLocationFromXEvent(xev),
114 EventSystemLocationFromXEvent(xev), EventTimeFromXEvent(xev), 107 EventSystemLocationFromXEvent(xev), EventTimeFromXEvent(xev),
115 flags, 0)); 108 flags, 0);
116 case ET_MOUSE_PRESSED: 109 case ET_MOUSE_PRESSED:
117 case ET_MOUSE_RELEASED: 110 case ET_MOUSE_RELEASED:
118 return base::WrapUnique(new MouseEvent( 111 return base::MakeUnique<MouseEvent>(
119 EventTypeFromXEvent(xev), EventLocationFromXEvent(xev), 112 EventTypeFromXEvent(xev), EventLocationFromXEvent(xev),
120 EventSystemLocationFromXEvent(xev), EventTimeFromXEvent(xev), 113 EventSystemLocationFromXEvent(xev), EventTimeFromXEvent(xev),
121 flags, GetChangedMouseButtonFlagsFromXEvent(xev))); 114 flags, GetChangedMouseButtonFlagsFromXEvent(xev));
122 case ET_UNKNOWN: 115 case ET_UNKNOWN:
123 // No event is created for X11-release events for mouse-wheel 116 // No event is created for X11-release events for mouse-wheel
124 // buttons. 117 // buttons.
125 break; 118 break;
126 default: 119 default:
127 NOTREACHED(); 120 NOTREACHED();
128 } 121 }
129 break; 122 break;
130 } 123 }
131 124
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 191
199 void X11EventSourceLibevent::OnFileCanReadWithoutBlocking(int fd) { 192 void X11EventSourceLibevent::OnFileCanReadWithoutBlocking(int fd) {
200 event_source_.DispatchXEvents(); 193 event_source_.DispatchXEvents();
201 } 194 }
202 195
203 void X11EventSourceLibevent::OnFileCanWriteWithoutBlocking(int fd) { 196 void X11EventSourceLibevent::OnFileCanWriteWithoutBlocking(int fd) {
204 NOTREACHED(); 197 NOTREACHED();
205 } 198 }
206 199
207 } // namespace ui 200 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/platform/x11/x11_event_source_glib.cc ('k') | ui/events/test/event_generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698