| 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 "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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |