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

Side by Side Diff: chrome/browser/chromeos/system_key_event_listener.cc

Issue 7250001: Refactor the glib message-pump, and use it as the base for a gtk message pump and an X message pump. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: media.gyp update Created 9 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 | Annotate | Revision Log
OLDNEW
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 "chrome/browser/chromeos/system_key_event_listener.h" 5 #include "chrome/browser/chromeos/system_key_event_listener.h"
6 6
7 #include <gdk/gdkx.h> 7 #include <gdk/gdkx.h>
8 #include <X11/XF86keysym.h> 8 #include <X11/XF86keysym.h>
9 9
10 #include "chrome/browser/chromeos/audio_handler.h" 10 #include "chrome/browser/chromeos/audio_handler.h"
11 #include "chrome/browser/chromeos/brightness_bubble.h" 11 #include "chrome/browser/chromeos/brightness_bubble.h"
12 #include "chrome/browser/chromeos/volume_bubble.h" 12 #include "chrome/browser/chromeos/volume_bubble.h"
13 #include "content/browser/user_metrics.h" 13 #include "content/browser/user_metrics.h"
14 #include "third_party/cros/chromeos_wm_ipc_enums.h" 14 #include "third_party/cros/chromeos_wm_ipc_enums.h"
15 15
16 #if defined(TOUCH_UI) 16 #if defined(TOUCH_UI)
17 #include "base/message_pump_glib_x_dispatch.h" 17 #include "base/message_pump_x.h"
18 #endif 18 #endif
19 19
20 namespace chromeos { 20 namespace chromeos {
21 21
22 namespace { 22 namespace {
23 23
24 const double kStepPercentage = 4.0; 24 const double kStepPercentage = 4.0;
25 25
26 } // namespace 26 } // namespace
27 27
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 case WM_IPC_SYSTEM_KEY_VOLUME_UP: 92 case WM_IPC_SYSTEM_KEY_VOLUME_UP:
93 OnVolumeUp(); 93 OnVolumeUp();
94 break; 94 break;
95 default: 95 default:
96 DLOG(ERROR) << "SystemKeyEventListener: Unexpected message " 96 DLOG(ERROR) << "SystemKeyEventListener: Unexpected message "
97 << message.param(0) 97 << message.param(0)
98 << " received"; 98 << " received";
99 } 99 }
100 } 100 }
101 101
102 #if defined(TOUCH_UI)
103 base::MessagePumpObserver::EventStatus
104 SystemKeyEventListener::WillProcessXEvent(XEvent* xevent) {
105 return ProcessedXEvent(xevent) ? EVENT_HANDLED : EVENT_CONTINUE;
106 }
107 #else // defined(TOUCH_UI)
102 // static 108 // static
103 GdkFilterReturn SystemKeyEventListener::GdkEventFilter(GdkXEvent* gxevent, 109 GdkFilterReturn SystemKeyEventListener::GdkEventFilter(GdkXEvent* gxevent,
104 GdkEvent* gevent, 110 GdkEvent* gevent,
105 gpointer data) { 111 gpointer data) {
106 SystemKeyEventListener* listener = static_cast<SystemKeyEventListener*>(data); 112 SystemKeyEventListener* listener = static_cast<SystemKeyEventListener*>(data);
107 XEvent* xevent = static_cast<XEvent*>(gxevent); 113 XEvent* xevent = static_cast<XEvent*>(gxevent);
108 114
109 return listener->WillProcessXEvent(xevent) ? GDK_FILTER_REMOVE 115 return listener->ProcessedXEvent(xevent) ? GDK_FILTER_REMOVE
110 : GDK_FILTER_CONTINUE; 116 : GDK_FILTER_CONTINUE;
111 } 117 }
118 #endif // defined(TOUCH_UI)
112 119
113 void SystemKeyEventListener::GrabKey(int32 key, uint32 mask) { 120 void SystemKeyEventListener::GrabKey(int32 key, uint32 mask) {
114 uint32 num_lock_mask = Mod2Mask; 121 uint32 num_lock_mask = Mod2Mask;
115 uint32 caps_lock_mask = LockMask; 122 uint32 caps_lock_mask = LockMask;
116 Window root = DefaultRootWindow(GDK_DISPLAY()); 123 Window root = DefaultRootWindow(GDK_DISPLAY());
117 XGrabKey(GDK_DISPLAY(), key, mask, root, True, GrabModeAsync, GrabModeAsync); 124 XGrabKey(GDK_DISPLAY(), key, mask, root, True, GrabModeAsync, GrabModeAsync);
118 XGrabKey(GDK_DISPLAY(), key, mask | caps_lock_mask, root, True, 125 XGrabKey(GDK_DISPLAY(), key, mask | caps_lock_mask, root, True,
119 GrabModeAsync, GrabModeAsync); 126 GrabModeAsync, GrabModeAsync);
120 XGrabKey(GDK_DISPLAY(), key, mask | num_lock_mask, root, True, 127 XGrabKey(GDK_DISPLAY(), key, mask | num_lock_mask, root, True,
121 GrabModeAsync, GrabModeAsync); 128 GrabModeAsync, GrabModeAsync);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 void SystemKeyEventListener::OnVolumeUp() { 160 void SystemKeyEventListener::OnVolumeUp() {
154 if (audio_handler_->IsMute()) 161 if (audio_handler_->IsMute())
155 audio_handler_->SetMute(false); 162 audio_handler_->SetMute(false);
156 else 163 else
157 audio_handler_->AdjustVolumeByPercent(kStepPercentage); 164 audio_handler_->AdjustVolumeByPercent(kStepPercentage);
158 VolumeBubble::GetInstance()->ShowBubble( 165 VolumeBubble::GetInstance()->ShowBubble(
159 audio_handler_->GetVolumePercent()); 166 audio_handler_->GetVolumePercent());
160 BrightnessBubble::GetInstance()->HideBubble(); 167 BrightnessBubble::GetInstance()->HideBubble();
161 } 168 }
162 169
163 bool SystemKeyEventListener::WillProcessXEvent(XEvent* xevent) { 170 bool SystemKeyEventListener::ProcessedXEvent(XEvent* xevent) {
164 if (xevent->type == KeyPress) { 171 if (xevent->type == KeyPress) {
165 int32 keycode = xevent->xkey.keycode; 172 int32 keycode = xevent->xkey.keycode;
166 if (keycode) { 173 if (keycode) {
167 // Only doing non-Alt/Shift/Ctrl modified keys 174 // Only doing non-Alt/Shift/Ctrl modified keys
168 if (!(xevent->xkey.state & (Mod1Mask | ShiftMask | ControlMask))) { 175 if (!(xevent->xkey.state & (Mod1Mask | ShiftMask | ControlMask))) {
169 if ((keycode == key_f8_) || 176 if ((keycode == key_f8_) ||
170 (keycode == key_volume_mute_)) { 177 (keycode == key_volume_mute_)) {
171 if (keycode == key_f8_) 178 if (keycode == key_f8_)
172 UserMetrics::RecordAction(UserMetricsAction("Accel_VolumeMute_F8")); 179 UserMetrics::RecordAction(UserMetricsAction("Accel_VolumeMute_F8"));
173 OnVolumeMute(); 180 OnVolumeMute();
(...skipping 11 matching lines...) Expand all
185 OnVolumeUp(); 192 OnVolumeUp();
186 return true; 193 return true;
187 } 194 }
188 } 195 }
189 } 196 }
190 } 197 }
191 return false; 198 return false;
192 } 199 }
193 200
194 } // namespace chromeos 201 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/system_key_event_listener.h ('k') | chrome/browser/chromeos/xinput_hierarchy_changed_event_listener.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698