| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/base/events.h" | 5 #include "ui/base/events.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 #include <string.h> |
| 9 | 10 |
| 10 #include "base/logging.h" | 11 #include "base/logging.h" |
| 11 #include "ui/base/keycodes/keyboard_code_conversion_x.h" | 12 #include "ui/base/keycodes/keyboard_code_conversion_x.h" |
| 12 #include "ui/base/touch/touch_factory.h" | 13 #include "ui/base/touch/touch_factory.h" |
| 13 #include "ui/gfx/point.h" | 14 #include "ui/gfx/point.h" |
| 14 | 15 |
| 16 #if !defined(TOOLKIT_USES_GTK) |
| 17 #include "base/message_pump_x.h" |
| 18 #endif |
| 19 |
| 15 namespace { | 20 namespace { |
| 16 | 21 |
| 17 // Scroll amount for each wheelscroll event. 53 is also the value used for GTK+. | 22 // Scroll amount for each wheelscroll event. 53 is also the value used for GTK+. |
| 18 static const int kWheelScrollAmount = 53; | 23 static const int kWheelScrollAmount = 53; |
| 19 | 24 |
| 20 static const int kMinWheelButton = 4; | 25 static const int kMinWheelButton = 4; |
| 21 #if defined(OS_CHROMEOS) | 26 #if defined(OS_CHROMEOS) |
| 22 // Chrome OS also uses buttons 8 and 9 for scrolling. | 27 // Chrome OS also uses buttons 8 and 9 for scrolling. |
| 23 static const int kMaxWheelButton = 9; | 28 static const int kMaxWheelButton = 9; |
| 24 #else | 29 #else |
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 364 unsigned int deviceid = | 369 unsigned int deviceid = |
| 365 static_cast<XIDeviceEvent*>(native_event->xcookie.data)->sourceid; | 370 static_cast<XIDeviceEvent*>(native_event->xcookie.data)->sourceid; |
| 366 // Force is normalized to fall into [0, 1] | 371 // Force is normalized to fall into [0, 1] |
| 367 if (!ui::TouchFactory::GetInstance()->NormalizeTouchParam( | 372 if (!ui::TouchFactory::GetInstance()->NormalizeTouchParam( |
| 368 deviceid, ui::TouchFactory::TP_PRESSURE, &force)) | 373 deviceid, ui::TouchFactory::TP_PRESSURE, &force)) |
| 369 force = 0.0; | 374 force = 0.0; |
| 370 return force; | 375 return force; |
| 371 } | 376 } |
| 372 | 377 |
| 373 base::NativeEvent CreateNoopEvent() { | 378 base::NativeEvent CreateNoopEvent() { |
| 374 static XEvent* noop = new XEvent(); | 379 static XEvent* noop = NULL; |
| 375 noop->xclient.type = ClientMessage; | 380 if (!noop) { |
| 376 noop->xclient.display = NULL; | 381 noop = new XEvent(); |
| 377 noop->xclient.window = None; | 382 memset(noop, 0, sizeof(XEvent)); |
| 378 noop->xclient.message_type = 0; | 383 noop->xclient.type = ClientMessage; |
| 379 noop->xclient.format = 0; | 384 noop->xclient.window = None; |
| 385 noop->xclient.format = 8; |
| 386 DCHECK(!noop->xclient.display); |
| 387 } |
| 388 // TODO(oshima): Remove ifdef once gtk is removed from views. |
| 389 #if defined(TOOLKIT_USES_GTK) |
| 390 NOTREACHED(); |
| 391 #else |
| 392 // Make sure we use atom from current xdisplay, which may |
| 393 // change during the test. |
| 394 noop->xclient.message_type = XInternAtom( |
| 395 base::MessagePumpX::GetDefaultXDisplay(), |
| 396 "noop", False); |
| 397 #endif |
| 380 return noop; | 398 return noop; |
| 381 } | 399 } |
| 382 | 400 |
| 383 } // namespace ui | 401 } // namespace ui |
| OLD | NEW |