Index: chrome/browser/extensions/global_shortcut_listener_win.cc |
diff --git a/chrome/browser/extensions/global_shortcut_listener_win.cc b/chrome/browser/extensions/global_shortcut_listener_win.cc |
index 318e06e11a3647f6d13c76995f0f104c3406a340..fe1c695077413c76b43522fa22c6e404159dc59b 100644 |
--- a/chrome/browser/extensions/global_shortcut_listener_win.cc |
+++ b/chrome/browser/extensions/global_shortcut_listener_win.cc |
@@ -12,19 +12,14 @@ |
using content::BrowserThread; |
-namespace { |
- |
-static base::LazyInstance<extensions::GlobalShortcutListenerWin> instance = |
- LAZY_INSTANCE_INITIALIZER; |
- |
-} // namespace |
- |
namespace extensions { |
// static |
GlobalShortcutListener* GlobalShortcutListener::GetInstance() { |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- return instance.Pointer(); |
+ static GlobalShortcutListenerWin *instance = |
+ new GlobalShortcutListenerWin(); |
+ return instance; |
} |
GlobalShortcutListenerWin::GlobalShortcutListenerWin() |
@@ -66,18 +61,12 @@ void GlobalShortcutListenerWin::OnWndProc(HWND hwnd, |
ui::Accelerator accelerator( |
ui::KeyboardCodeForWindowsKeyCode(key_code), modifiers); |
- instance.Get().NotifyKeyPressed(accelerator); |
+ NotifyKeyPressed(accelerator); |
} |
-void GlobalShortcutListenerWin::RegisterAccelerator( |
- const ui::Accelerator& accelerator, |
- GlobalShortcutListener::Observer* observer) { |
- if (hotkey_ids_.find(accelerator) != hotkey_ids_.end()) { |
- // The shortcut has already been registered. Some shortcuts, such as |
- // MediaKeys can have multiple targets, all keyed off of the same |
- // accelerator. |
- return; |
- } |
+bool GlobalShortcutListenerWin::RegisterAcceleratorImpl( |
+ const ui::Accelerator& accelerator) { |
+ DCHECK(hotkey_ids_.find(accelerator) == hotkey_ids_.end()); |
int modifiers = 0; |
modifiers |= accelerator.IsShiftDown() ? MOD_SHIFT : 0; |
@@ -93,22 +82,17 @@ void GlobalShortcutListenerWin::RegisterAccelerator( |
if (!success) { |
// Most likely error: 1409 (Hotkey already registered). |
LOG(ERROR) << "RegisterHotKey failed, error: " << GetLastError(); |
- return; |
+ return false; |
} |
hotkey_ids_[accelerator] = hotkey_id++; |
- GlobalShortcutListener::RegisterAccelerator(accelerator, observer); |
+ return true; |
} |
-void GlobalShortcutListenerWin::UnregisterAccelerator( |
- const ui::Accelerator& accelerator, |
- GlobalShortcutListener::Observer* observer) { |
- // We may get asked to unregister something that we couldn't register (for |
- // example if the shortcut was already taken by another app), so we |
- // need to handle that gracefully. |
+void GlobalShortcutListenerWin::UnregisterAcceleratorImpl( |
+ const ui::Accelerator& accelerator) { |
HotkeyIdMap::iterator it = hotkey_ids_.find(accelerator); |
- if (it == hotkey_ids_.end()) |
- return; |
+ DCHECK(it != hotkey_ids_.end()); |
bool success = !!UnregisterHotKey( |
gfx::SingletonHwnd::GetInstance()->hwnd(), it->second); |
@@ -117,7 +101,6 @@ void GlobalShortcutListenerWin::UnregisterAccelerator( |
DCHECK(success); |
hotkey_ids_.erase(it); |
- GlobalShortcutListener::UnregisterAccelerator(accelerator, observer); |
} |
} // namespace extensions |