OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <X11/keysym.h> | 5 #include <X11/keysym.h> |
6 #include <X11/Xlib.h> | 6 #include <X11/Xlib.h> |
7 | 7 |
8 // X macro fail. | 8 // X macro fail. |
9 #if defined(RootWindow) | 9 #if defined(RootWindow) |
10 #undef RootWindow | 10 #undef RootWindow |
11 #endif | 11 #endif |
12 | 12 |
13 #include "base/logging.h" | 13 #include "base/logging.h" |
14 #include "base/message_pump_aurax11.h" | 14 #include "base/message_pump_aurax11.h" |
15 #include "ui/aura/root_window.h" | 15 #include "ui/aura/root_window.h" |
16 #include "ui/aura/ui_controls_aura.h" | 16 #include "ui/aura/ui_controls_aura.h" |
17 #include "ui/base/keycodes/keyboard_code_conversion_x.h" | 17 #include "ui/base/keycodes/keyboard_code_conversion_x.h" |
| 18 #include "ui/compositor/dip_util.h" |
18 #include "ui/ui_controls/ui_controls_aura.h" | 19 #include "ui/ui_controls/ui_controls_aura.h" |
19 | 20 |
20 namespace aura { | 21 namespace aura { |
21 namespace { | 22 namespace { |
22 | 23 |
23 // Mask of the buttons currently down. | 24 // Mask of the buttons currently down. |
24 unsigned button_down_mask = 0; | 25 unsigned button_down_mask = 0; |
25 | 26 |
26 // Event waiter executes the specified closure|when a matching event | 27 // Event waiter executes the specified closure|when a matching event |
27 // is found. | 28 // is found. |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 // Simulate a mouse move. (x,y) are absolute screen coordinates. | 130 // Simulate a mouse move. (x,y) are absolute screen coordinates. |
130 virtual bool SendMouseMove(long x, long y) { | 131 virtual bool SendMouseMove(long x, long y) { |
131 return SendMouseMoveNotifyWhenDone(x, y, base::Closure()); | 132 return SendMouseMoveNotifyWhenDone(x, y, base::Closure()); |
132 } | 133 } |
133 virtual bool SendMouseMoveNotifyWhenDone(long x, | 134 virtual bool SendMouseMoveNotifyWhenDone(long x, |
134 long y, | 135 long y, |
135 const base::Closure& closure) { | 136 const base::Closure& closure) { |
136 XEvent xevent = {0}; | 137 XEvent xevent = {0}; |
137 XMotionEvent* xmotion = &xevent.xmotion; | 138 XMotionEvent* xmotion = &xevent.xmotion; |
138 xmotion->type = MotionNotify; | 139 xmotion->type = MotionNotify; |
139 g_current_x = xmotion->x = x; | 140 gfx::Point point = ui::ConvertPointToPixel( |
140 g_current_y = xmotion->y = y; | 141 root_window_->layer(), |
| 142 gfx::Point(static_cast<int>(x), static_cast<int>(y))); |
| 143 g_current_x = xmotion->x = point.x(); |
| 144 g_current_y = xmotion->y = point.y(); |
141 xmotion->state = button_down_mask; | 145 xmotion->state = button_down_mask; |
142 xmotion->same_screen = True; | 146 xmotion->same_screen = True; |
143 // RootWindow will take care of other necessary fields. | 147 // RootWindow will take care of other necessary fields. |
144 root_window_->PostNativeEvent(&xevent); | 148 root_window_->PostNativeEvent(&xevent); |
145 RunClosureAfterAllPendingUIEvents(closure); | 149 RunClosureAfterAllPendingUIEvents(closure); |
146 return true; | 150 return true; |
147 } | 151 } |
148 virtual bool SendMouseEvents(ui_controls::MouseButton type, int state) { | 152 virtual bool SendMouseEvents(ui_controls::MouseButton type, int state) { |
149 return SendMouseEventsNotifyWhenDone(type, state, base::Closure()); | 153 return SendMouseEventsNotifyWhenDone(type, state, base::Closure()); |
150 } | 154 } |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 DISALLOW_COPY_AND_ASSIGN(UIControlsX11); | 234 DISALLOW_COPY_AND_ASSIGN(UIControlsX11); |
231 }; | 235 }; |
232 | 236 |
233 } // namespace | 237 } // namespace |
234 | 238 |
235 ui_controls::UIControlsAura* CreateUIControlsAura(RootWindow* root_window) { | 239 ui_controls::UIControlsAura* CreateUIControlsAura(RootWindow* root_window) { |
236 return new UIControlsX11(root_window); | 240 return new UIControlsX11(root_window); |
237 } | 241 } |
238 | 242 |
239 } // namespace aura | 243 } // namespace aura |
OLD | NEW |