Index: chrome/browser/extensions/global_shortcut_listener_x11.cc |
diff --git a/chrome/browser/extensions/global_shortcut_listener_x11.cc b/chrome/browser/extensions/global_shortcut_listener_x11.cc |
index 0574c109841f41fd8dd987a1fc3d1670d99bd129..b0b73ccce57930fc47a34616e576bac94813e860 100644 |
--- a/chrome/browser/extensions/global_shortcut_listener_x11.cc |
+++ b/chrome/browser/extensions/global_shortcut_listener_x11.cc |
@@ -110,6 +110,13 @@ bool GlobalShortcutListenerX11::Dispatch(const base::NativeEvent& event) { |
void GlobalShortcutListenerX11::RegisterAccelerator( |
const ui::Accelerator& accelerator, |
GlobalShortcutListener::Observer* observer) { |
+ if (registered_hot_keys_.find(accelerator) != registered_hot_keys_.end()) { |
+ // The shortcut has already been registered. Some shortcuts, such as |
+ // MediaKeys can have multiple targets, all keyed off of the same |
+ // accelerator. |
+ return; |
+ } |
+ |
int modifiers = GetNativeModifiers(accelerator); |
KeyCode keycode = XKeysymToKeycode(x_display_, accelerator.key_code()); |
base::X11ErrorTracker err_tracker; |