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

Side by Side Diff: ui/events/devices/x11/device_data_manager_x11.cc

Issue 2914103002: Remove usages of XInternAtom (Closed)
Patch Set: Address sadrul and sergeyu comments Created 3 years, 6 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 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/devices/x11/device_data_manager_x11.h" 5 #include "ui/events/devices/x11/device_data_manager_x11.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <X11/extensions/XInput.h> 8 #include <X11/extensions/XInput.h>
9 #include <X11/extensions/XInput2.h> 9 #include <X11/extensions/XInput2.h>
10 #include <X11/Xlib.h> 10 #include <X11/Xlib.h>
11 11
12 #include <utility> 12 #include <utility>
13 13
14 #include "base/bind.h" 14 #include "base/bind.h"
15 #include "base/bind_helpers.h" 15 #include "base/bind_helpers.h"
16 #include "base/command_line.h" 16 #include "base/command_line.h"
17 #include "base/logging.h" 17 #include "base/logging.h"
18 #include "base/macros.h" 18 #include "base/macros.h"
19 #include "base/memory/singleton.h" 19 #include "base/memory/singleton.h"
20 #include "base/sys_info.h" 20 #include "base/sys_info.h"
21 #include "build/build_config.h" 21 #include "build/build_config.h"
22 #include "ui/display/display.h" 22 #include "ui/display/display.h"
23 #include "ui/events/devices/x11/device_list_cache_x11.h" 23 #include "ui/events/devices/x11/device_list_cache_x11.h"
24 #include "ui/events/devices/x11/touch_factory_x11.h" 24 #include "ui/events/devices/x11/touch_factory_x11.h"
25 #include "ui/events/event_constants.h" 25 #include "ui/events/event_constants.h"
26 #include "ui/events/event_switches.h" 26 #include "ui/events/event_switches.h"
27 #include "ui/events/keycodes/keyboard_code_conversion_x.h" 27 #include "ui/events/keycodes/keyboard_code_conversion_x.h"
28 #include "ui/gfx/geometry/point3_f.h" 28 #include "ui/gfx/geometry/point3_f.h"
29 #include "ui/gfx/x/x11_atom_cache.h"
29 30
30 // XIScrollClass was introduced in XI 2.1 so we need to define it here 31 // XIScrollClass was introduced in XI 2.1 so we need to define it here
31 // for backward-compatibility with older versions of XInput. 32 // for backward-compatibility with older versions of XInput.
32 #if !defined(XIScrollClass) 33 #if !defined(XIScrollClass)
33 #define XIScrollClass 3 34 #define XIScrollClass 3
34 #endif 35 #endif
35 36
36 // Multi-touch support was introduced in XI 2.2. Add XI event types here 37 // Multi-touch support was introduced in XI 2.2. Add XI event types here
37 // for backward-compatibility with older versions of XInput. 38 // for backward-compatibility with older versions of XInput.
38 #if !defined(XI_TouchBegin) 39 #if !defined(XI_TouchBegin)
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 } 159 }
159 160
160 // static 161 // static
161 DeviceDataManagerX11* DeviceDataManagerX11::GetInstance() { 162 DeviceDataManagerX11* DeviceDataManagerX11::GetInstance() {
162 return static_cast<DeviceDataManagerX11*>(DeviceDataManager::GetInstance()); 163 return static_cast<DeviceDataManagerX11*>(DeviceDataManager::GetInstance());
163 } 164 }
164 165
165 DeviceDataManagerX11::DeviceDataManagerX11() 166 DeviceDataManagerX11::DeviceDataManagerX11()
166 : xi_opcode_(-1), 167 : xi_opcode_(-1),
167 high_precision_scrolling_disabled_(IsHighPrecisionScrollingDisabled()), 168 high_precision_scrolling_disabled_(IsHighPrecisionScrollingDisabled()),
168 atom_cache_(gfx::GetXDisplay(), kCachedAtoms),
169 button_map_count_(0) { 169 button_map_count_(0) {
170 CHECK(gfx::GetXDisplay()); 170 CHECK(gfx::GetXDisplay());
171 InitializeXInputInternal(); 171 InitializeXInputInternal();
172 172
173 // Make sure the sizes of enum and kCachedAtoms are aligned. 173 // Make sure the sizes of enum and kCachedAtoms are aligned.
174 CHECK(arraysize(kCachedAtoms) == static_cast<size_t>(DT_LAST_ENTRY) + 1); 174 CHECK(arraysize(kCachedAtoms) == static_cast<size_t>(DT_LAST_ENTRY) + 1);
175 UpdateDeviceList(gfx::GetXDisplay()); 175 UpdateDeviceList(gfx::GetXDisplay());
176 UpdateButtonMap(); 176 UpdateButtonMap();
177 } 177 }
178 178
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 scroll_data_[i].horizontal.seen = false; 236 scroll_data_[i].horizontal.seen = false;
237 scroll_data_[i].vertical.number = -1; 237 scroll_data_[i].vertical.number = -1;
238 scroll_data_[i].vertical.seen = false; 238 scroll_data_[i].vertical.seen = false;
239 for (int j = 0; j < kMaxSlotNum; j++) 239 for (int j = 0; j < kMaxSlotNum; j++)
240 last_seen_valuator_[i][j].clear(); 240 last_seen_valuator_[i][j].clear();
241 } 241 }
242 242
243 // Find all the touchpad devices. 243 // Find all the touchpad devices.
244 const XDeviceList& dev_list = 244 const XDeviceList& dev_list =
245 ui::DeviceListCacheX11::GetInstance()->GetXDeviceList(display); 245 ui::DeviceListCacheX11::GetInstance()->GetXDeviceList(display);
246 Atom xi_touchpad = XInternAtom(display, XI_TOUCHPAD, false); 246 Atom xi_touchpad = ui::X11AtomCache::GetInstance()->GetAtom(XI_TOUCHPAD);
247 for (int i = 0; i < dev_list.count; ++i) 247 for (int i = 0; i < dev_list.count; ++i)
248 if (dev_list[i].type == xi_touchpad) 248 if (dev_list[i].type == xi_touchpad)
249 touchpads_[dev_list[i].id] = true; 249 touchpads_[dev_list[i].id] = true;
250 250
251 if (!IsXInput2Available()) 251 if (!IsXInput2Available())
252 return; 252 return;
253 253
254 // Update the structs with new valuator information 254 // Update the structs with new valuator information
255 const XIDeviceList& info_list = 255 const XIDeviceList& info_list =
256 ui::DeviceListCacheX11::GetInstance()->GetXI2DeviceList(display); 256 ui::DeviceListCacheX11::GetInstance()->GetXI2DeviceList(display);
257 Atom atoms[DT_LAST_ENTRY]; 257 Atom atoms[DT_LAST_ENTRY];
258 for (int data_type = 0; data_type < DT_LAST_ENTRY; ++data_type) 258 for (int data_type = 0; data_type < DT_LAST_ENTRY; ++data_type)
259 atoms[data_type] = atom_cache_.GetAtom(kCachedAtoms[data_type]); 259 atoms[data_type] =
260 ui::X11AtomCache::GetInstance()->GetAtom(kCachedAtoms[data_type]);
260 261
261 for (int i = 0; i < info_list.count; ++i) { 262 for (int i = 0; i < info_list.count; ++i) {
262 const XIDeviceInfo& info = info_list[i]; 263 const XIDeviceInfo& info = info_list[i];
263 264
264 if (info.use == XIMasterPointer) 265 if (info.use == XIMasterPointer)
265 master_pointers_.push_back(info.deviceid); 266 master_pointers_.push_back(info.deviceid);
266 267
267 // We currently handle only slave, non-keyboard devices 268 // We currently handle only slave, non-keyboard devices
268 if (info.use != XISlavePointer && info.use != XIFloatingSlave) 269 if (info.use != XISlavePointer && info.use != XIFloatingSlave)
269 continue; 270 continue;
(...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after
895 } else { 896 } else {
896 keyboards.erase(it); 897 keyboards.erase(it);
897 ++blocked_iter; 898 ++blocked_iter;
898 } 899 }
899 } 900 }
900 // Notify base class of updated list. 901 // Notify base class of updated list.
901 DeviceDataManager::OnKeyboardDevicesUpdated(keyboards); 902 DeviceDataManager::OnKeyboardDevicesUpdated(keyboards);
902 } 903 }
903 904
904 } // namespace ui 905 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/devices/x11/device_data_manager_x11.h ('k') | ui/events/platform/x11/x11_event_source.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698