123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364 |
- From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
- From: Jeremy Apthorp <[email protected]>
- Date: Wed, 10 Oct 2018 15:07:34 -0700
- Subject: command-ismediakey.patch
- Override MediaKeysListener::IsMediaKeycode and associated functions to also listen for
- Volume Up, Volume Down, and Mute.
- Also apply electron/electron@0f67b1866a9f00b852370e721affa4efda623f3a
- and electron/electron@d2368d2d3b3de9eec4cc32b6aaf035cc89921bf1 as
- patches.
- diff --git a/chrome/browser/extensions/global_shortcut_listener_ozone.cc b/chrome/browser/extensions/global_shortcut_listener_ozone.cc
- index ed2ac20679a9357c9493224ec5e08837c7860d6e..7f9a97e11395e5521e100694cd37bcd95bcd8e35 100644
- --- a/chrome/browser/extensions/global_shortcut_listener_ozone.cc
- +++ b/chrome/browser/extensions/global_shortcut_listener_ozone.cc
- @@ -58,7 +58,8 @@ bool GlobalShortcutListenerOzone::RegisterAcceleratorImpl(
- const bool registered =
- platform_global_shortcut_listener_->RegisterAccelerator(
- accelerator.key_code(), accelerator.IsAltDown(),
- - accelerator.IsCtrlDown(), accelerator.IsShiftDown());
- + accelerator.IsCtrlDown(), accelerator.IsShiftDown(),
- + accelerator.IsCmdDown());
- if (registered)
- registered_hot_keys_.insert(accelerator);
- return registered;
- @@ -72,14 +73,15 @@ void GlobalShortcutListenerOzone::UnregisterAcceleratorImpl(
-
- platform_global_shortcut_listener_->UnregisterAccelerator(
- accelerator.key_code(), accelerator.IsAltDown(), accelerator.IsCtrlDown(),
- - accelerator.IsShiftDown());
- + accelerator.IsShiftDown(), accelerator.IsCmdDown());
- registered_hot_keys_.erase(accelerator);
- }
-
- void GlobalShortcutListenerOzone::OnKeyPressed(ui::KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) {
- + bool is_shift_down,
- + bool is_cmd_down) {
- int modifiers = 0;
- if (is_alt_down)
- modifiers |= ui::EF_ALT_DOWN;
- @@ -87,6 +89,8 @@ void GlobalShortcutListenerOzone::OnKeyPressed(ui::KeyboardCode key_code,
- modifiers |= ui::EF_CONTROL_DOWN;
- if (is_shift_down)
- modifiers |= ui::EF_SHIFT_DOWN;
- + if (is_cmd_down)
- + modifiers |= ui::EF_COMMAND_DOWN;
-
- NotifyKeyPressed(ui::Accelerator(key_code, modifiers));
- }
- diff --git a/chrome/browser/extensions/global_shortcut_listener_ozone.h b/chrome/browser/extensions/global_shortcut_listener_ozone.h
- index eb3f3431a3774c3a05afd4c7350f3801e9c8c684..b8970ef9ddb69d6a9fc6d106293e760535b6f4b3 100644
- --- a/chrome/browser/extensions/global_shortcut_listener_ozone.h
- +++ b/chrome/browser/extensions/global_shortcut_listener_ozone.h
- @@ -45,7 +45,8 @@ class GlobalShortcutListenerOzone
- void OnKeyPressed(ui::KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) override;
- + bool is_shift_down,
- + bool is_cmd_down) override;
- void OnPlatformListenerDestroyed() override;
-
- bool is_listening_ = false;
- diff --git a/chrome/browser/extensions/global_shortcut_listener_win.cc b/chrome/browser/extensions/global_shortcut_listener_win.cc
- index 0f344ee352a48497e77a72bb298146c61e7fcf2a..3bad4263ea552fc63445bf5613f8add746a3a374 100644
- --- a/chrome/browser/extensions/global_shortcut_listener_win.cc
- +++ b/chrome/browser/extensions/global_shortcut_listener_win.cc
- @@ -62,6 +62,8 @@ void GlobalShortcutListenerWin::OnWndProc(HWND hwnd,
- modifiers |= (LOWORD(lparam) & MOD_SHIFT) ? ui::EF_SHIFT_DOWN : 0;
- modifiers |= (LOWORD(lparam) & MOD_ALT) ? ui::EF_ALT_DOWN : 0;
- modifiers |= (LOWORD(lparam) & MOD_CONTROL) ? ui::EF_CONTROL_DOWN : 0;
- + modifiers |= (LOWORD(lparam) & MOD_WIN) ? ui::EF_COMMAND_DOWN : 0;
- +
- ui::Accelerator accelerator(
- ui::KeyboardCodeForWindowsKeyCode(key_code), modifiers);
-
- @@ -92,6 +94,7 @@ bool GlobalShortcutListenerWin::RegisterAcceleratorImpl(
- modifiers |= accelerator.IsShiftDown() ? MOD_SHIFT : 0;
- modifiers |= accelerator.IsCtrlDown() ? MOD_CONTROL : 0;
- modifiers |= accelerator.IsAltDown() ? MOD_ALT : 0;
- + modifiers |= accelerator.IsCmdDown() ? MOD_WIN : 0;
-
- // Create an observer that registers a hot key for |accelerator|.
- std::unique_ptr<gfx::SingletonHwndHotKeyObserver> observer =
- diff --git a/content/browser/media/media_keys_listener_manager_impl.cc b/content/browser/media/media_keys_listener_manager_impl.cc
- index 3f37f08ccc06137317164e96e8934a0202fa5550..b954f8dde00d4f5257223c464e9145a6bef48900 100644
- --- a/content/browser/media/media_keys_listener_manager_impl.cc
- +++ b/content/browser/media/media_keys_listener_manager_impl.cc
- @@ -297,6 +297,11 @@ void MediaKeysListenerManagerImpl::UpdateSystemMediaControlsEnabledControls() {
- case ui::VKEY_MEDIA_STOP:
- system_media_controls_->SetIsStopEnabled(should_enable);
- break;
- + case ui::VKEY_VOLUME_DOWN:
- + case ui::VKEY_VOLUME_UP:
- + case ui::VKEY_VOLUME_MUTE:
- + // Do nothing.
- + break;
- default:
- NOTREACHED();
- }
- diff --git a/ui/base/accelerators/media_keys_listener.cc b/ui/base/accelerators/media_keys_listener.cc
- index 1145e1f3d79482b5bb468c3128431ac674310e5f..e9f595045e0c076e0735f27dfc38bfbc7951d372 100644
- --- a/ui/base/accelerators/media_keys_listener.cc
- +++ b/ui/base/accelerators/media_keys_listener.cc
- @@ -13,7 +13,8 @@ MediaKeysListener::~MediaKeysListener() = default;
- // static
- bool MediaKeysListener::IsMediaKeycode(KeyboardCode key_code) {
- return key_code == VKEY_MEDIA_PLAY_PAUSE || key_code == VKEY_MEDIA_STOP ||
- - key_code == VKEY_MEDIA_PREV_TRACK || key_code == VKEY_MEDIA_NEXT_TRACK;
- + key_code == VKEY_MEDIA_PREV_TRACK || key_code == VKEY_MEDIA_NEXT_TRACK ||
- + key_code == VKEY_VOLUME_UP || key_code == VKEY_VOLUME_DOWN || key_code == VKEY_VOLUME_MUTE;
- }
-
- } // namespace ui
- diff --git a/ui/base/accelerators/media_keys_listener_mac.mm b/ui/base/accelerators/media_keys_listener_mac.mm
- index ada705fb42e88d4bfa05b212c84111be9057a50e..a866b975687dd08ad88031a63f161b3164e82455 100644
- --- a/ui/base/accelerators/media_keys_listener_mac.mm
- +++ b/ui/base/accelerators/media_keys_listener_mac.mm
- @@ -32,6 +32,12 @@ KeyboardCode MediaKeyCodeToKeyboardCode(int key_code) {
- case NX_KEYTYPE_NEXT:
- case NX_KEYTYPE_FAST:
- return VKEY_MEDIA_NEXT_TRACK;
- + case NX_KEYTYPE_SOUND_UP:
- + return VKEY_VOLUME_UP;
- + case NX_KEYTYPE_SOUND_DOWN:
- + return VKEY_VOLUME_DOWN;
- + case NX_KEYTYPE_MUTE:
- + return VKEY_VOLUME_MUTE;
- }
- return VKEY_UNKNOWN;
- }
- @@ -192,7 +198,10 @@ static CGEventRef EventTapCallback(CGEventTapProxy proxy,
- int key_code = (data1 & 0xFFFF0000) >> 16;
- if (key_code != NX_KEYTYPE_PLAY && key_code != NX_KEYTYPE_NEXT &&
- key_code != NX_KEYTYPE_PREVIOUS && key_code != NX_KEYTYPE_FAST &&
- - key_code != NX_KEYTYPE_REWIND) {
- + key_code != NX_KEYTYPE_REWIND &&
- + key_code != NX_KEYTYPE_SOUND_UP &&
- + key_code != NX_KEYTYPE_SOUND_DOWN &&
- + key_code != NX_KEYTYPE_MUTE) {
- return event;
- }
-
- diff --git a/ui/base/x/x11_global_shortcut_listener.cc b/ui/base/x/x11_global_shortcut_listener.cc
- index 898e15a25c99ad25221c41594803521565ff4432..664337941023e800c9605f987d0e1d65bb0a444d 100644
- --- a/ui/base/x/x11_global_shortcut_listener.cc
- +++ b/ui/base/x/x11_global_shortcut_listener.cc
- @@ -31,11 +31,13 @@ const x11::ModMask kModifiersMasks[] = {
-
- x11::ModMask GetNativeModifiers(bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) {
- + bool is_shift_down,
- + bool is_cmd_down) {
- constexpr auto kNoMods = x11::ModMask{};
- return (is_shift_down ? x11::ModMask::Shift : kNoMods) |
- (is_ctrl_down ? x11::ModMask::Control : kNoMods) |
- - (is_alt_down ? x11::ModMask::c_1 : kNoMods);
- + (is_alt_down ? x11::ModMask::c_1 : kNoMods) |
- + (is_cmd_down ? x11::ModMask::c_4 : kNoMods);
- }
-
- } // namespace
- @@ -81,8 +83,9 @@ uint32_t XGlobalShortcutListener::DispatchEvent(const PlatformEvent& event) {
- bool XGlobalShortcutListener::RegisterAccelerator(KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) {
- - auto modifiers = GetNativeModifiers(is_alt_down, is_ctrl_down, is_shift_down);
- + bool is_shift_down,
- + bool is_cmd_down) {
- + auto modifiers = GetNativeModifiers(is_alt_down, is_ctrl_down, is_shift_down, is_cmd_down);
- auto keysym = XKeysymForWindowsKeyCode(key_code, false);
- auto keycode = connection_->KeysymToKeycode(keysym);
-
- @@ -107,7 +110,7 @@ bool XGlobalShortcutListener::RegisterAccelerator(KeyboardCode key_code,
- }
-
- registered_combinations_.insert(
- - Accelerator(key_code, is_alt_down, is_ctrl_down, is_shift_down));
- + Accelerator(key_code, is_alt_down, is_ctrl_down, is_shift_down, is_cmd_down));
-
- return true;
- }
- @@ -115,8 +118,9 @@ bool XGlobalShortcutListener::RegisterAccelerator(KeyboardCode key_code,
- void XGlobalShortcutListener::UnregisterAccelerator(KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) {
- - auto modifiers = GetNativeModifiers(is_alt_down, is_ctrl_down, is_shift_down);
- + bool is_shift_down,
- + bool is_cmd_down) {
- + auto modifiers = GetNativeModifiers(is_alt_down, is_ctrl_down, is_shift_down, is_cmd_down);
- auto keysym = XKeysymForWindowsKeyCode(key_code, false);
- auto keycode = connection_->KeysymToKeycode(keysym);
-
- @@ -124,7 +128,7 @@ void XGlobalShortcutListener::UnregisterAccelerator(KeyboardCode key_code,
- connection_->UngrabKey({keycode, x_root_window_, modifiers | mask});
-
- registered_combinations_.erase(
- - Accelerator(key_code, is_alt_down, is_ctrl_down, is_shift_down));
- + Accelerator(key_code, is_alt_down, is_ctrl_down, is_shift_down, is_cmd_down));
- }
-
- void XGlobalShortcutListener::OnKeyPressEvent(const KeyEvent& event) {
- @@ -134,14 +138,15 @@ void XGlobalShortcutListener::OnKeyPressEvent(const KeyEvent& event) {
- const bool is_alt_down = event.flags() & EF_ALT_DOWN;
- const bool is_ctrl_down = event.flags() & EF_CONTROL_DOWN;
- const bool is_shift_down = event.flags() & EF_SHIFT_DOWN;
- + const bool is_cmd_down = event.flags() & EF_COMMAND_DOWN;
-
- if (!base::Contains(
- registered_combinations_,
- - Accelerator(key_code, is_alt_down, is_ctrl_down, is_shift_down))) {
- + Accelerator(key_code, is_alt_down, is_ctrl_down, is_shift_down, is_cmd_down))) {
- return;
- }
-
- - OnKeyPressed(key_code, is_alt_down, is_ctrl_down, is_shift_down);
- + OnKeyPressed(key_code, is_alt_down, is_ctrl_down, is_shift_down, is_cmd_down);
- }
-
- } // namespace ui
- diff --git a/ui/base/x/x11_global_shortcut_listener.h b/ui/base/x/x11_global_shortcut_listener.h
- index 9e472d76423a748cbf6257c6656d8fd69853dd93..404a294b9cf3dd6744ece0b5c1e611bbab207e78 100644
- --- a/ui/base/x/x11_global_shortcut_listener.h
- +++ b/ui/base/x/x11_global_shortcut_listener.h
- @@ -40,18 +40,21 @@ class COMPONENT_EXPORT(UI_BASE_X) XGlobalShortcutListener
- virtual void OnKeyPressed(KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) = 0;
- + bool is_shift_down,
- + bool is_cmd_down) = 0;
-
- void StartListening();
- void StopListening();
- bool RegisterAccelerator(KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down);
- + bool is_shift_down,
- + bool is_cmd_down);
- void UnregisterAccelerator(KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down);
- + bool is_shift_down,
- + bool is_cmd_down);
-
- private:
- // Due to how system key grabbing works on X11, we have to be a bit greedy and
- @@ -60,7 +63,7 @@ class COMPONENT_EXPORT(UI_BASE_X) XGlobalShortcutListener
- // and filter the incoming events against that registry before notifying the
- // observer. This tuple describes the meaningful parts of the event; booleans
- // 1, 2, and 3 hold states of Alt, Control, and Shift keys, respectively.
- - using Accelerator = std::tuple<KeyboardCode, bool, bool, bool>;
- + using Accelerator = std::tuple<KeyboardCode, bool, bool, bool, bool>;
-
- // Invoked when a global shortcut is pressed.
- void OnKeyPressEvent(const KeyEvent& event);
- diff --git a/ui/ozone/platform/x11/x11_global_shortcut_listener_ozone.cc b/ui/ozone/platform/x11/x11_global_shortcut_listener_ozone.cc
- index 760dfc340601b7c1807fa750b008bcc79780c583..54f9817017c9fc0ebcd2f5825fb20b2fb8412b02 100644
- --- a/ui/ozone/platform/x11/x11_global_shortcut_listener_ozone.cc
- +++ b/ui/ozone/platform/x11/x11_global_shortcut_listener_ozone.cc
- @@ -26,27 +26,30 @@ void X11GlobalShortcutListenerOzone::StopListening() {
- bool X11GlobalShortcutListenerOzone::RegisterAccelerator(KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) {
- + bool is_shift_down,
- + bool is_cmd_down) {
- return XGlobalShortcutListener::RegisterAccelerator(
- - key_code, is_alt_down, is_ctrl_down, is_shift_down);
- + key_code, is_alt_down, is_ctrl_down, is_shift_down, is_cmd_down);
- }
-
- void X11GlobalShortcutListenerOzone::UnregisterAccelerator(
- KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) {
- + bool is_shift_down,
- + bool is_cmd_down) {
- return XGlobalShortcutListener::UnregisterAccelerator(
- - key_code, is_alt_down, is_ctrl_down, is_shift_down);
- + key_code, is_alt_down, is_ctrl_down, is_shift_down, is_cmd_down);
- }
-
- void X11GlobalShortcutListenerOzone::OnKeyPressed(KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) {
- + bool is_shift_down,
- + bool is_cmd_down) {
- if (delegate()) {
- delegate()->OnKeyPressed(key_code, is_alt_down, is_ctrl_down,
- - is_shift_down);
- + is_shift_down, is_cmd_down);
- }
- }
-
- diff --git a/ui/ozone/platform/x11/x11_global_shortcut_listener_ozone.h b/ui/ozone/platform/x11/x11_global_shortcut_listener_ozone.h
- index 0f1980abdcaf30e23f580b937ecb2c422bf2a357..112967622cb8a6263c7a88dd8d09f48f52448a45 100644
- --- a/ui/ozone/platform/x11/x11_global_shortcut_listener_ozone.h
- +++ b/ui/ozone/platform/x11/x11_global_shortcut_listener_ozone.h
- @@ -28,17 +28,20 @@ class X11GlobalShortcutListenerOzone : public PlatformGlobalShortcutListener,
- bool RegisterAccelerator(KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) override;
- + bool is_shift_down,
- + bool is_cmd_down) override;
- void UnregisterAccelerator(KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) override;
- + bool is_shift_down,
- + bool is_cmd_down) override;
-
- // ui::XGlobalShortcutListener:
- void OnKeyPressed(KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) override;
- + bool is_shift_down,
- + bool is_cmd_down) override;
- };
-
- } // namespace ui
- diff --git a/ui/ozone/public/platform_global_shortcut_listener.h b/ui/ozone/public/platform_global_shortcut_listener.h
- index a5b539d4e7461c4ca9faa08fef086fc28a4ebd3a..f3aacc605f07807a5b83b496bd8a87933981d4f3 100644
- --- a/ui/ozone/public/platform_global_shortcut_listener.h
- +++ b/ui/ozone/public/platform_global_shortcut_listener.h
- @@ -19,7 +19,8 @@ class COMPONENT_EXPORT(OZONE_BASE) PlatformGlobalShortcutListenerDelegate {
- virtual void OnKeyPressed(KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) = 0;
- + bool is_shift_down,
- + bool is_cmd_down) = 0;
- // Called back when the platform implementation is destroyed.
- virtual void OnPlatformListenerDestroyed() = 0;
-
- @@ -51,11 +52,13 @@ class COMPONENT_EXPORT(OZONE_BASE) PlatformGlobalShortcutListener {
- virtual bool RegisterAccelerator(KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) = 0;
- + bool is_shift_down,
- + bool is_cmd_down) = 0;
- virtual void UnregisterAccelerator(KeyboardCode key_code,
- bool is_alt_down,
- bool is_ctrl_down,
- - bool is_shift_down) = 0;
- + bool is_shift_down,
- + bool is_cmd_down) = 0;
-
- protected:
- PlatformGlobalShortcutListenerDelegate* delegate() { return delegate_; }
|