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

Side by Side Diff: ui/aura/test/ui_controls_factory_aurax11.cc

Issue 72503002: Remove some pass-thrus on RootWindow API in favor of exposing the RootWindowHost again. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « ui/aura/test/ui_controls_factory_aurawin.cc ('k') | ui/aura/window.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 xevent.xkey.type = KeyPress; 111 xevent.xkey.type = KeyPress;
112 if (control) 112 if (control)
113 SetKeycodeAndSendThenMask(&xevent, XK_Control_L, ControlMask); 113 SetKeycodeAndSendThenMask(&xevent, XK_Control_L, ControlMask);
114 if (shift) 114 if (shift)
115 SetKeycodeAndSendThenMask(&xevent, XK_Shift_L, ShiftMask); 115 SetKeycodeAndSendThenMask(&xevent, XK_Shift_L, ShiftMask);
116 if (alt) 116 if (alt)
117 SetKeycodeAndSendThenMask(&xevent, XK_Alt_L, Mod1Mask); 117 SetKeycodeAndSendThenMask(&xevent, XK_Alt_L, Mod1Mask);
118 xevent.xkey.keycode = 118 xevent.xkey.keycode =
119 XKeysymToKeycode(gfx::GetXDisplay(), 119 XKeysymToKeycode(gfx::GetXDisplay(),
120 ui::XKeysymForWindowsKeyCode(key, shift)); 120 ui::XKeysymForWindowsKeyCode(key, shift));
121 root_window_->PostNativeEvent(&xevent); 121 root_window_->host()->PostNativeEvent(&xevent);
122 122
123 // Send key release events. 123 // Send key release events.
124 xevent.xkey.type = KeyRelease; 124 xevent.xkey.type = KeyRelease;
125 root_window_->PostNativeEvent(&xevent); 125 root_window_->host()->PostNativeEvent(&xevent);
126 if (alt) 126 if (alt)
127 UnmaskAndSetKeycodeThenSend(&xevent, Mod1Mask, XK_Alt_L); 127 UnmaskAndSetKeycodeThenSend(&xevent, Mod1Mask, XK_Alt_L);
128 if (shift) 128 if (shift)
129 UnmaskAndSetKeycodeThenSend(&xevent, ShiftMask, XK_Shift_L); 129 UnmaskAndSetKeycodeThenSend(&xevent, ShiftMask, XK_Shift_L);
130 if (control) 130 if (control)
131 UnmaskAndSetKeycodeThenSend(&xevent, ControlMask, XK_Control_L); 131 UnmaskAndSetKeycodeThenSend(&xevent, ControlMask, XK_Control_L);
132 DCHECK(!xevent.xkey.state); 132 DCHECK(!xevent.xkey.state);
133 RunClosureAfterAllPendingUIEvents(closure); 133 RunClosureAfterAllPendingUIEvents(closure);
134 return true; 134 return true;
135 } 135 }
(...skipping 10 matching lines...) Expand all
146 XMotionEvent* xmotion = &xevent.xmotion; 146 XMotionEvent* xmotion = &xevent.xmotion;
147 xmotion->type = MotionNotify; 147 xmotion->type = MotionNotify;
148 gfx::Point point = ui::ConvertPointToPixel( 148 gfx::Point point = ui::ConvertPointToPixel(
149 root_window_->window()->layer(), 149 root_window_->window()->layer(),
150 gfx::Point(static_cast<int>(x), static_cast<int>(y))); 150 gfx::Point(static_cast<int>(x), static_cast<int>(y)));
151 xmotion->x = point.x(); 151 xmotion->x = point.x();
152 xmotion->y = point.y(); 152 xmotion->y = point.y();
153 xmotion->state = button_down_mask; 153 xmotion->state = button_down_mask;
154 xmotion->same_screen = True; 154 xmotion->same_screen = True;
155 // RootWindow will take care of other necessary fields. 155 // RootWindow will take care of other necessary fields.
156 root_window_->PostNativeEvent(&xevent); 156 root_window_->host()->PostNativeEvent(&xevent);
157 RunClosureAfterAllPendingUIEvents(closure); 157 RunClosureAfterAllPendingUIEvents(closure);
158 return true; 158 return true;
159 } 159 }
160 virtual bool SendMouseEvents(MouseButton type, int state) OVERRIDE { 160 virtual bool SendMouseEvents(MouseButton type, int state) OVERRIDE {
161 return SendMouseEventsNotifyWhenDone(type, state, base::Closure()); 161 return SendMouseEventsNotifyWhenDone(type, state, base::Closure());
162 } 162 }
163 virtual bool SendMouseEventsNotifyWhenDone( 163 virtual bool SendMouseEventsNotifyWhenDone(
164 MouseButton type, 164 MouseButton type,
165 int state, 165 int state,
166 const base::Closure& closure) OVERRIDE { 166 const base::Closure& closure) OVERRIDE {
(...skipping 19 matching lines...) Expand all
186 xbutton->state = Button2Mask; 186 xbutton->state = Button2Mask;
187 break; 187 break;
188 case RIGHT: 188 case RIGHT:
189 xbutton->button = Button3; 189 xbutton->button = Button3;
190 xbutton->state = Button3Mask; 190 xbutton->state = Button3Mask;
191 break; 191 break;
192 } 192 }
193 // RootWindow will take care of other necessary fields. 193 // RootWindow will take care of other necessary fields.
194 if (state & DOWN) { 194 if (state & DOWN) {
195 xevent.xbutton.type = ButtonPress; 195 xevent.xbutton.type = ButtonPress;
196 root_window_->PostNativeEvent(&xevent); 196 root_window_->host()->PostNativeEvent(&xevent);
197 button_down_mask |= xbutton->state; 197 button_down_mask |= xbutton->state;
198 } 198 }
199 if (state & UP) { 199 if (state & UP) {
200 xevent.xbutton.type = ButtonRelease; 200 xevent.xbutton.type = ButtonRelease;
201 root_window_->PostNativeEvent(&xevent); 201 root_window_->host()->PostNativeEvent(&xevent);
202 button_down_mask = (button_down_mask | xbutton->state) ^ xbutton->state; 202 button_down_mask = (button_down_mask | xbutton->state) ^ xbutton->state;
203 } 203 }
204 RunClosureAfterAllPendingUIEvents(closure); 204 RunClosureAfterAllPendingUIEvents(closure);
205 return true; 205 return true;
206 } 206 }
207 virtual bool SendMouseClick(MouseButton type) OVERRIDE { 207 virtual bool SendMouseClick(MouseButton type) OVERRIDE {
208 return SendMouseEvents(type, UP | DOWN); 208 return SendMouseEvents(type, UP | DOWN);
209 } 209 }
210 virtual void RunClosureAfterAllPendingUIEvents( 210 virtual void RunClosureAfterAllPendingUIEvents(
211 const base::Closure& closure) OVERRIDE { 211 const base::Closure& closure) OVERRIDE {
212 if (closure.is_null()) 212 if (closure.is_null())
213 return; 213 return;
214 static XEvent* marker_event = NULL; 214 static XEvent* marker_event = NULL;
215 if (!marker_event) { 215 if (!marker_event) {
216 marker_event = new XEvent(); 216 marker_event = new XEvent();
217 marker_event->xclient.type = ClientMessage; 217 marker_event->xclient.type = ClientMessage;
218 marker_event->xclient.display = NULL; 218 marker_event->xclient.display = NULL;
219 marker_event->xclient.window = None; 219 marker_event->xclient.window = None;
220 marker_event->xclient.format = 8; 220 marker_event->xclient.format = 8;
221 } 221 }
222 marker_event->xclient.message_type = MarkerEventAtom(); 222 marker_event->xclient.message_type = MarkerEventAtom();
223 root_window_->PostNativeEvent(marker_event); 223 root_window_->host()->PostNativeEvent(marker_event);
224 new EventWaiter(closure, &Matcher); 224 new EventWaiter(closure, &Matcher);
225 } 225 }
226 private: 226 private:
227 void SetKeycodeAndSendThenMask(XEvent* xevent, 227 void SetKeycodeAndSendThenMask(XEvent* xevent,
228 KeySym keysym, 228 KeySym keysym,
229 unsigned int mask) { 229 unsigned int mask) {
230 xevent->xkey.keycode = 230 xevent->xkey.keycode =
231 XKeysymToKeycode(gfx::GetXDisplay(), keysym); 231 XKeysymToKeycode(gfx::GetXDisplay(), keysym);
232 root_window_->PostNativeEvent(xevent); 232 root_window_->host()->PostNativeEvent(xevent);
233 xevent->xkey.state |= mask; 233 xevent->xkey.state |= mask;
234 } 234 }
235 235
236 void UnmaskAndSetKeycodeThenSend(XEvent* xevent, 236 void UnmaskAndSetKeycodeThenSend(XEvent* xevent,
237 unsigned int mask, 237 unsigned int mask,
238 KeySym keysym) { 238 KeySym keysym) {
239 xevent->xkey.state ^= mask; 239 xevent->xkey.state ^= mask;
240 xevent->xkey.keycode = 240 xevent->xkey.keycode =
241 XKeysymToKeycode(gfx::GetXDisplay(), keysym); 241 XKeysymToKeycode(gfx::GetXDisplay(), keysym);
242 root_window_->PostNativeEvent(xevent); 242 root_window_->host()->PostNativeEvent(xevent);
243 } 243 }
244 244
245 aura::RootWindow* root_window_; 245 aura::RootWindow* root_window_;
246 246
247 DISALLOW_COPY_AND_ASSIGN(UIControlsX11); 247 DISALLOW_COPY_AND_ASSIGN(UIControlsX11);
248 }; 248 };
249 249
250 } // namespace 250 } // namespace
251 251
252 UIControlsAura* CreateUIControlsAura(aura::RootWindow* root_window) { 252 UIControlsAura* CreateUIControlsAura(aura::RootWindow* root_window) {
253 return new UIControlsX11(root_window); 253 return new UIControlsX11(root_window);
254 } 254 }
255 255
256 } // namespace test 256 } // namespace test
257 } // namespace aura 257 } // namespace aura
OLDNEW
« no previous file with comments | « ui/aura/test/ui_controls_factory_aurawin.cc ('k') | ui/aura/window.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698