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

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

Issue 23460052: Move XID, XDisplay, GetXDisplay and a few other types to ui/gfx/x/x11_types.h (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sdf Created 7 years, 3 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/aura/root_window_host_x11.cc ('k') | ui/base/clipboard/clipboard_aurax11.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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 } 66 }
67 67
68 private: 68 private:
69 base::Closure closure_; 69 base::Closure closure_;
70 EventWaiterMatcher matcher_; 70 EventWaiterMatcher matcher_;
71 DISALLOW_COPY_AND_ASSIGN(EventWaiter); 71 DISALLOW_COPY_AND_ASSIGN(EventWaiter);
72 }; 72 };
73 73
74 // Returns atom that indidates that the XEvent is marker event. 74 // Returns atom that indidates that the XEvent is marker event.
75 Atom MarkerEventAtom() { 75 Atom MarkerEventAtom() {
76 return XInternAtom(ui::GetXDisplay(), "marker_event", False); 76 return XInternAtom(gfx::GetXDisplay(), "marker_event", False);
77 } 77 }
78 78
79 // Returns true when the event is a marker event. 79 // Returns true when the event is a marker event.
80 bool Matcher(const base::NativeEvent& event) { 80 bool Matcher(const base::NativeEvent& event) {
81 return event->xany.type == ClientMessage && 81 return event->xany.type == ClientMessage &&
82 event->xclient.message_type == MarkerEventAtom(); 82 event->xclient.message_type == MarkerEventAtom();
83 } 83 }
84 84
85 class UIControlsX11 : public UIControlsAura { 85 class UIControlsX11 : public UIControlsAura {
86 public: 86 public:
(...skipping 21 matching lines...) Expand all
108 DCHECK(!command); // No command key on Aura 108 DCHECK(!command); // No command key on Aura
109 XEvent xevent = {0}; 109 XEvent xevent = {0};
110 xevent.xkey.type = KeyPress; 110 xevent.xkey.type = KeyPress;
111 if (control) 111 if (control)
112 SetKeycodeAndSendThenMask(&xevent, XK_Control_L, ControlMask); 112 SetKeycodeAndSendThenMask(&xevent, XK_Control_L, ControlMask);
113 if (shift) 113 if (shift)
114 SetKeycodeAndSendThenMask(&xevent, XK_Shift_L, ShiftMask); 114 SetKeycodeAndSendThenMask(&xevent, XK_Shift_L, ShiftMask);
115 if (alt) 115 if (alt)
116 SetKeycodeAndSendThenMask(&xevent, XK_Alt_L, Mod1Mask); 116 SetKeycodeAndSendThenMask(&xevent, XK_Alt_L, Mod1Mask);
117 xevent.xkey.keycode = 117 xevent.xkey.keycode =
118 XKeysymToKeycode(ui::GetXDisplay(), 118 XKeysymToKeycode(gfx::GetXDisplay(),
119 ui::XKeysymForWindowsKeyCode(key, shift)); 119 ui::XKeysymForWindowsKeyCode(key, shift));
120 root_window_->PostNativeEvent(&xevent); 120 root_window_->PostNativeEvent(&xevent);
121 121
122 // Send key release events. 122 // Send key release events.
123 xevent.xkey.type = KeyRelease; 123 xevent.xkey.type = KeyRelease;
124 root_window_->PostNativeEvent(&xevent); 124 root_window_->PostNativeEvent(&xevent);
125 if (alt) 125 if (alt)
126 UnmaskAndSetKeycodeThenSend(&xevent, Mod1Mask, XK_Alt_L); 126 UnmaskAndSetKeycodeThenSend(&xevent, Mod1Mask, XK_Alt_L);
127 if (shift) 127 if (shift)
128 UnmaskAndSetKeycodeThenSend(&xevent, ShiftMask, XK_Shift_L); 128 UnmaskAndSetKeycodeThenSend(&xevent, ShiftMask, XK_Shift_L);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 } 218 }
219 marker_event->xclient.message_type = MarkerEventAtom(); 219 marker_event->xclient.message_type = MarkerEventAtom();
220 root_window_->PostNativeEvent(marker_event); 220 root_window_->PostNativeEvent(marker_event);
221 new EventWaiter(closure, &Matcher); 221 new EventWaiter(closure, &Matcher);
222 } 222 }
223 private: 223 private:
224 void SetKeycodeAndSendThenMask(XEvent* xevent, 224 void SetKeycodeAndSendThenMask(XEvent* xevent,
225 KeySym keysym, 225 KeySym keysym,
226 unsigned int mask) { 226 unsigned int mask) {
227 xevent->xkey.keycode = 227 xevent->xkey.keycode =
228 XKeysymToKeycode(ui::GetXDisplay(), keysym); 228 XKeysymToKeycode(gfx::GetXDisplay(), keysym);
229 root_window_->PostNativeEvent(xevent); 229 root_window_->PostNativeEvent(xevent);
230 xevent->xkey.state |= mask; 230 xevent->xkey.state |= mask;
231 } 231 }
232 232
233 void UnmaskAndSetKeycodeThenSend(XEvent* xevent, 233 void UnmaskAndSetKeycodeThenSend(XEvent* xevent,
234 unsigned int mask, 234 unsigned int mask,
235 KeySym keysym) { 235 KeySym keysym) {
236 xevent->xkey.state ^= mask; 236 xevent->xkey.state ^= mask;
237 xevent->xkey.keycode = 237 xevent->xkey.keycode =
238 XKeysymToKeycode(ui::GetXDisplay(), keysym); 238 XKeysymToKeycode(gfx::GetXDisplay(), keysym);
239 root_window_->PostNativeEvent(xevent); 239 root_window_->PostNativeEvent(xevent);
240 } 240 }
241 241
242 aura::RootWindow* root_window_; 242 aura::RootWindow* root_window_;
243 243
244 DISALLOW_COPY_AND_ASSIGN(UIControlsX11); 244 DISALLOW_COPY_AND_ASSIGN(UIControlsX11);
245 }; 245 };
246 246
247 } // namespace 247 } // namespace
248 248
249 UIControlsAura* CreateUIControlsAura(aura::RootWindow* root_window) { 249 UIControlsAura* CreateUIControlsAura(aura::RootWindow* root_window) {
250 return new UIControlsX11(root_window); 250 return new UIControlsX11(root_window);
251 } 251 }
252 252
253 } // namespace test 253 } // namespace test
254 } // namespace aura 254 } // namespace aura
OLDNEW
« no previous file with comments | « ui/aura/root_window_host_x11.cc ('k') | ui/base/clipboard/clipboard_aurax11.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698