macos-hotkeys-on-linux.patch 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. # Working patch for Portage Overlay pf4public www-client/ungoogled-chromium-88.0.4324.150-r2
  2. # Copy to /etc/portage/patches/www-client/ungoogled-chromium/ and emerge like normal
  3. diff --git a/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc b/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc
  4. index 234cb7afe1..d3f598278f 100644
  5. --- a/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc
  6. +++ b/chrome/browser/ui/views/renderer_context_menu/render_view_context_menu_views.cc
  7. @@ -140,39 +140,39 @@ bool RenderViewContextMenuViews::GetAcceleratorForCommandId(
  8. return true;
  9. case IDC_CONTENT_CONTEXT_UNDO:
  10. - *accel = ui::Accelerator(ui::VKEY_Z, ui::EF_CONTROL_DOWN);
  11. + *accel = ui::Accelerator(ui::VKEY_Z, ui::EF_PLATFORM_ACCELERATOR);
  12. return true;
  13. case IDC_CONTENT_CONTEXT_REDO:
  14. // TODO(jcampan): should it be Ctrl-Y?
  15. *accel = ui::Accelerator(ui::VKEY_Z,
  16. - ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN);
  17. + ui::EF_SHIFT_DOWN | ui::EF_PLATFORM_ACCELERATOR);
  18. return true;
  19. case IDC_CONTENT_CONTEXT_CUT:
  20. - *accel = ui::Accelerator(ui::VKEY_X, ui::EF_CONTROL_DOWN);
  21. + *accel = ui::Accelerator(ui::VKEY_X, ui::EF_PLATFORM_ACCELERATOR);
  22. return true;
  23. case IDC_CONTENT_CONTEXT_COPY:
  24. - *accel = ui::Accelerator(ui::VKEY_C, ui::EF_CONTROL_DOWN);
  25. + *accel = ui::Accelerator(ui::VKEY_C, ui::EF_PLATFORM_ACCELERATOR);
  26. return true;
  27. case IDC_CONTENT_CONTEXT_INSPECTELEMENT:
  28. *accel = ui::Accelerator(ui::VKEY_I,
  29. - ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN);
  30. + ui::EF_SHIFT_DOWN | ui::EF_PLATFORM_ACCELERATOR);
  31. return true;
  32. case IDC_CONTENT_CONTEXT_PASTE:
  33. - *accel = ui::Accelerator(ui::VKEY_V, ui::EF_CONTROL_DOWN);
  34. + *accel = ui::Accelerator(ui::VKEY_V, ui::EF_PLATFORM_ACCELERATOR);
  35. return true;
  36. case IDC_CONTENT_CONTEXT_PASTE_AND_MATCH_STYLE:
  37. *accel = ui::Accelerator(ui::VKEY_V,
  38. - ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN);
  39. + ui::EF_SHIFT_DOWN | ui::EF_PLATFORM_ACCELERATOR);
  40. return true;
  41. case IDC_CONTENT_CONTEXT_SELECTALL:
  42. - *accel = ui::Accelerator(ui::VKEY_A, ui::EF_CONTROL_DOWN);
  43. + *accel = ui::Accelerator(ui::VKEY_A, ui::EF_PLATFORM_ACCELERATOR);
  44. return true;
  45. case IDC_CONTENT_CONTEXT_ROTATECCW:
  46. @@ -188,11 +188,11 @@ bool RenderViewContextMenuViews::GetAcceleratorForCommandId(
  47. return true;
  48. case IDC_PRINT:
  49. - *accel = ui::Accelerator(ui::VKEY_P, ui::EF_CONTROL_DOWN);
  50. + *accel = ui::Accelerator(ui::VKEY_P, ui::EF_PLATFORM_ACCELERATOR);
  51. return true;
  52. case IDC_RELOAD:
  53. - *accel = ui::Accelerator(ui::VKEY_R, ui::EF_CONTROL_DOWN);
  54. + *accel = ui::Accelerator(ui::VKEY_R, ui::EF_PLATFORM_ACCELERATOR);
  55. return true;
  56. case IDC_CONTENT_CONTEXT_SAVEAVAS:
  57. diff --git a/chrome/common/extensions/command.cc b/chrome/common/extensions/command.cc
  58. index 4732019d47..aa07642f40 100644
  59. --- a/chrome/common/extensions/command.cc
  60. +++ b/chrome/common/extensions/command.cc
  61. @@ -103,7 +103,7 @@ ui::Accelerator ParseImpl(const std::string& accelerator,
  62. // Mac the developer has to specify MacCtrl). Therefore we treat this
  63. // as Command.
  64. modifiers |= ui::EF_COMMAND_DOWN;
  65. -#if defined(OS_MAC)
  66. +#if defined(OS_MAC) || defined(OS_LINUX)
  67. } else if (platform_key == values::kKeybindingPlatformDefault) {
  68. // If we see "Command+foo" in the Default section it can mean two
  69. // things, depending on the platform:
  70. diff --git a/content/renderer/pepper/pepper_plugin_instance_impl.cc b/content/renderer/pepper/pepper_plugin_instance_impl.cc
  71. index 9692196ee8..12dcbd57e3 100644
  72. --- a/content/renderer/pepper/pepper_plugin_instance_impl.cc
  73. +++ b/content/renderer/pepper/pepper_plugin_instance_impl.cc
  74. @@ -1434,7 +1434,7 @@ void PepperPluginInstanceImpl::SelectAll() {
  75. // TODO(https://crbug.com/836074) |kPlatformModifier| should be
  76. // |ui::EF_PLATFORM_ACCELERATOR| (|ui::EF_COMMAND_DOWN| on Mac).
  77. - static const ui::EventFlags kPlatformModifier = ui::EF_CONTROL_DOWN;
  78. + static const ui::EventFlags kPlatformModifier = ui::EF_COMMAND_DOWN;
  79. // Synthesize a ctrl + a key event to send to the plugin and let it sort out
  80. // the event. See also https://crbug.com/739529.
  81. ui::KeyEvent char_event(L'A', ui::VKEY_A, ui::DomCode::NONE,
  82. diff --git a/third_party/blink/renderer/core/editing/editing_behavior.cc b/third_party/blink/renderer/core/editing/editing_behavior.cc
  83. index 0bfbf2d335..b2060a134f 100644
  84. --- a/third_party/blink/renderer/core/editing/editing_behavior.cc
  85. +++ b/third_party/blink/renderer/core/editing/editing_behavior.cc
  86. @@ -45,7 +45,7 @@ const unsigned kCtrlKey = WebInputEvent::kControlKey;
  87. const unsigned kAltKey = WebInputEvent::kAltKey;
  88. const unsigned kShiftKey = WebInputEvent::kShiftKey;
  89. const unsigned kMetaKey = WebInputEvent::kMetaKey;
  90. -#if defined(OS_MAC)
  91. +#if defined(OS_MAC) || defined(OS_LINUX)
  92. // Aliases for the generic key defintions to make kbd shortcuts definitions more
  93. // readable on OS X.
  94. const unsigned kOptionKey = kAltKey;
  95. @@ -88,7 +88,7 @@ struct DomKeyKeyDownEntry {
  96. const KeyboardCodeKeyDownEntry kKeyboardCodeKeyDownEntries[] = {
  97. {VKEY_LEFT, 0, "MoveLeft"},
  98. {VKEY_LEFT, kShiftKey, "MoveLeftAndModifySelection"},
  99. -#if defined(OS_MAC)
  100. +#if defined(OS_MAC) || defined(OS_LINUX)
  101. {VKEY_LEFT, kOptionKey, "MoveWordLeft"},
  102. {VKEY_LEFT, kOptionKey | kShiftKey, "MoveWordLeftAndModifySelection"},
  103. #else
  104. @@ -97,7 +97,7 @@ const KeyboardCodeKeyDownEntry kKeyboardCodeKeyDownEntries[] = {
  105. #endif
  106. {VKEY_RIGHT, 0, "MoveRight"},
  107. {VKEY_RIGHT, kShiftKey, "MoveRightAndModifySelection"},
  108. -#if defined(OS_MAC)
  109. +#if defined(OS_MAC) || defined(OS_LINUX)
  110. {VKEY_RIGHT, kOptionKey, "MoveWordRight"},
  111. {VKEY_RIGHT, kOptionKey | kShiftKey, "MoveWordRightAndModifySelection"},
  112. #else
  113. @@ -110,7 +110,7 @@ const KeyboardCodeKeyDownEntry kKeyboardCodeKeyDownEntries[] = {
  114. {VKEY_DOWN, 0, "MoveDown"},
  115. {VKEY_DOWN, kShiftKey, "MoveDownAndModifySelection"},
  116. {VKEY_NEXT, kShiftKey, "MovePageDownAndModifySelection"},
  117. -#if !defined(OS_MAC)
  118. +#if !defined(OS_MAC) && !defined(OS_LINUX)
  119. {VKEY_UP, kCtrlKey, "MoveParagraphBackward"},
  120. {VKEY_UP, kCtrlKey | kShiftKey, "MoveParagraphBackwardAndModifySelection"},
  121. {VKEY_DOWN, kCtrlKey, "MoveParagraphForward"},
  122. @@ -120,18 +120,18 @@ const KeyboardCodeKeyDownEntry kKeyboardCodeKeyDownEntries[] = {
  123. #endif
  124. {VKEY_HOME, 0, "MoveToBeginningOfLine"},
  125. {VKEY_HOME, kShiftKey, "MoveToBeginningOfLineAndModifySelection"},
  126. -#if defined(OS_MAC)
  127. +#if defined(OS_MAC) || defined(OS_LINUX)
  128. {VKEY_PRIOR, kOptionKey, "MovePageUp"},
  129. {VKEY_NEXT, kOptionKey, "MovePageDown"},
  130. #endif
  131. -#if !defined(OS_MAC)
  132. +#if !defined(OS_MAC) && !defined(OS_LINUX)
  133. {VKEY_HOME, kCtrlKey, "MoveToBeginningOfDocument"},
  134. {VKEY_HOME, kCtrlKey | kShiftKey,
  135. "MoveToBeginningOfDocumentAndModifySelection"},
  136. #endif
  137. {VKEY_END, 0, "MoveToEndOfLine"},
  138. {VKEY_END, kShiftKey, "MoveToEndOfLineAndModifySelection"},
  139. -#if !defined(OS_MAC)
  140. +#if !defined(OS_MAC) && !defined(OS_LINUX)
  141. {VKEY_END, kCtrlKey, "MoveToEndOfDocument"},
  142. {VKEY_END, kCtrlKey | kShiftKey, "MoveToEndOfDocumentAndModifySelection"},
  143. #endif
  144. @@ -145,7 +145,7 @@ const KeyboardCodeKeyDownEntry kKeyboardCodeKeyDownEntries[] = {
  145. {VKEY_BACK, kCtrlKey, "DeleteWordBackward"},
  146. {VKEY_DELETE, kCtrlKey, "DeleteWordForward"},
  147. #endif
  148. -#if defined(OS_MAC)
  149. +#if defined(OS_MAC) || defined(OS_LINUX)
  150. {'B', kCommandKey, "ToggleBold"},
  151. {'I', kCommandKey, "ToggleItalic"},
  152. #else
  153. @@ -168,14 +168,14 @@ const KeyboardCodeKeyDownEntry kKeyboardCodeKeyDownEntries[] = {
  154. #if !defined(OS_MAC)
  155. // On OS X, we pipe these back to the browser, so that it can do menu item
  156. // blinking.
  157. - {'C', kCtrlKey, "Copy"},
  158. - {'V', kCtrlKey, "Paste"},
  159. - {'V', kCtrlKey | kShiftKey, "PasteAndMatchStyle"},
  160. - {'X', kCtrlKey, "Cut"},
  161. - {'A', kCtrlKey, "SelectAll"},
  162. - {'Z', kCtrlKey, "Undo"},
  163. - {'Z', kCtrlKey | kShiftKey, "Redo"},
  164. - {'Y', kCtrlKey, "Redo"},
  165. + {'C', kCommandKey, "Copy"},
  166. + {'V', kCommandKey, "Paste"},
  167. + {'V', kCommandKey | kShiftKey, "PasteAndMatchStyle"},
  168. + {'X', kCommandKey, "Cut"},
  169. + {'A', kCommandKey, "SelectAll"},
  170. + {'Z', kCommandKey, "Undo"},
  171. + {'Z', kCommandKey | kShiftKey, "Redo"},
  172. + {'Y', kCommandKey, "Redo"},
  173. #endif
  174. #if defined(OS_WIN)
  175. {VKEY_BACK, kAltKey, "Undo"},
  176. @@ -274,19 +274,19 @@ bool EditingBehavior::ShouldInsertCharacter(const KeyboardEvent& event) const {
  177. // unexpected behaviour
  178. if (ch < ' ')
  179. return false;
  180. -#if defined(OS_LINUX) || defined(OS_CHROMEOS)
  181. +//#if defined(OS_LINUX) || defined(OS_CHROMEOS)
  182. // According to XKB map no keyboard combinations with ctrl key are mapped to
  183. // printable characters, however we need the filter as the DomKey/text could
  184. // contain printable characters.
  185. - if (event.ctrlKey())
  186. - return false;
  187. -#elif !defined(OS_WIN)
  188. + //if (event.ctrlKey())
  189. + // return false;
  190. +#if !defined(OS_WIN)
  191. // Don't insert ASCII character if ctrl w/o alt or meta is on.
  192. // On Mac, we should ignore events when meta is on (Command-<x>).
  193. if (ch < 0x80) {
  194. if (event.ctrlKey() && !event.altKey())
  195. return false;
  196. -#if defined(OS_MAC)
  197. +#if defined(OS_MAC) || defined(OS_LINUX)
  198. if (event.metaKey())
  199. return false;
  200. #endif
  201. diff --git a/ui/base/window_open_disposition.cc b/ui/base/window_open_disposition.cc
  202. index d90ce70031..32dfebc127 100644
  203. --- a/ui/base/window_open_disposition.cc
  204. +++ b/ui/base/window_open_disposition.cc
  205. @@ -17,7 +17,7 @@ WindowOpenDisposition DispositionFromClick(
  206. bool shift_key,
  207. WindowOpenDisposition disposition_for_current_tab) {
  208. // MacOS uses meta key (Command key) to spawn new tabs.
  209. -#if defined(OS_APPLE)
  210. +#if defined(OS_APPLE) || defined(OS_LINUX)
  211. if (middle_button || meta_key)
  212. #else
  213. if (middle_button || ctrl_key)
  214. diff --git a/ui/events/base_event_utils.cc b/ui/events/base_event_utils.cc
  215. index f5c709d2e6..6123022081 100644
  216. --- a/ui/events/base_event_utils.cc
  217. +++ b/ui/events/base_event_utils.cc
  218. @@ -22,6 +22,8 @@ const int kSystemKeyModifierMask = EF_ALT_DOWN | EF_COMMAND_DOWN;
  219. #elif defined(OS_APPLE)
  220. // Alt modifier is used to input extended characters on Mac.
  221. const int kSystemKeyModifierMask = EF_COMMAND_DOWN;
  222. +#elif defined(OS_LINUX)
  223. +const int kSystemKeyModifierMask = EF_COMMAND_DOWN;
  224. #else
  225. const int kSystemKeyModifierMask = EF_ALT_DOWN;
  226. #endif // !defined(OS_CHROMEOS) && !defined(OS_APPLE)
  227. diff --git a/ui/events/event_constants.h b/ui/events/event_constants.h
  228. index bc04d9d67b..58c446d1fe 100644
  229. --- a/ui/events/event_constants.h
  230. +++ b/ui/events/event_constants.h
  231. @@ -50,7 +50,9 @@ enum EventFlags {
  232. #if defined(OS_APPLE)
  233. EF_PLATFORM_ACCELERATOR = EF_COMMAND_DOWN,
  234. #else
  235. - EF_PLATFORM_ACCELERATOR = EF_CONTROL_DOWN,
  236. + //EF_PLATFORM_ACCELERATOR = EF_CONTROL_DOWN,
  237. + // TODO(hparadiz): Build Configurable EF_PLATFORM_ACCELERATOR from chrome://flags
  238. + EF_PLATFORM_ACCELERATOR = EF_COMMAND_DOWN,
  239. #endif
  240. };
  241. diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc
  242. index 432332a7fa..b70ae97293 100644
  243. --- a/ui/views/controls/textfield/textfield.cc
  244. +++ b/ui/views/controls/textfield/textfield.cc
  245. @@ -130,46 +130,47 @@ ui::TextEditCommand GetCommandForKeyEvent(const ui::KeyEvent& event) {
  246. const bool shift = event.IsShiftDown();
  247. const bool control = event.IsControlDown() || event.IsCommandDown();
  248. const bool alt = event.IsAltDown() || event.IsAltGrDown();
  249. + const bool command = event.IsCommandDown();
  250. switch (event.key_code()) {
  251. case ui::VKEY_Z:
  252. if (control && !shift && !alt)
  253. return ui::TextEditCommand::UNDO;
  254. - return (control && shift && !alt) ? ui::TextEditCommand::REDO
  255. + return (command && shift && !alt) ? ui::TextEditCommand::REDO
  256. : ui::TextEditCommand::INVALID_COMMAND;
  257. case ui::VKEY_Y:
  258. - return (control && !alt) ? ui::TextEditCommand::REDO
  259. + return (command && !alt) ? ui::TextEditCommand::REDO
  260. : ui::TextEditCommand::INVALID_COMMAND;
  261. case ui::VKEY_A:
  262. - return (control && !alt) ? ui::TextEditCommand::SELECT_ALL
  263. + return (command && !alt) ? ui::TextEditCommand::SELECT_ALL
  264. : ui::TextEditCommand::INVALID_COMMAND;
  265. case ui::VKEY_X:
  266. - return (control && !alt) ? ui::TextEditCommand::CUT
  267. + return (command && !alt) ? ui::TextEditCommand::CUT
  268. : ui::TextEditCommand::INVALID_COMMAND;
  269. case ui::VKEY_C:
  270. - return (control && !alt) ? ui::TextEditCommand::COPY
  271. + return (command && !alt) ? ui::TextEditCommand::COPY
  272. : ui::TextEditCommand::INVALID_COMMAND;
  273. case ui::VKEY_V:
  274. - return (control && !alt) ? ui::TextEditCommand::PASTE
  275. + return (command && !alt) ? ui::TextEditCommand::PASTE
  276. : ui::TextEditCommand::INVALID_COMMAND;
  277. case ui::VKEY_RIGHT:
  278. // Ignore alt+right, which may be a browser navigation shortcut.
  279. if (alt)
  280. return ui::TextEditCommand::INVALID_COMMAND;
  281. if (!shift) {
  282. - return control ? ui::TextEditCommand::MOVE_WORD_RIGHT
  283. + return command ? ui::TextEditCommand::MOVE_WORD_RIGHT
  284. : ui::TextEditCommand::MOVE_RIGHT;
  285. }
  286. - return control ? ui::TextEditCommand::MOVE_WORD_RIGHT_AND_MODIFY_SELECTION
  287. + return command ? ui::TextEditCommand::MOVE_WORD_RIGHT_AND_MODIFY_SELECTION
  288. : ui::TextEditCommand::MOVE_RIGHT_AND_MODIFY_SELECTION;
  289. case ui::VKEY_LEFT:
  290. // Ignore alt+left, which may be a browser navigation shortcut.
  291. if (alt)
  292. return ui::TextEditCommand::INVALID_COMMAND;
  293. if (!shift) {
  294. - return control ? ui::TextEditCommand::MOVE_WORD_LEFT
  295. + return command ? ui::TextEditCommand::MOVE_WORD_LEFT
  296. : ui::TextEditCommand::MOVE_LEFT;
  297. }
  298. - return control ? ui::TextEditCommand::MOVE_WORD_LEFT_AND_MODIFY_SELECTION
  299. + return command ? ui::TextEditCommand::MOVE_WORD_LEFT_AND_MODIFY_SELECTION
  300. : ui::TextEditCommand::MOVE_LEFT_AND_MODIFY_SELECTION;
  301. case ui::VKEY_HOME:
  302. return shift ? ui::TextEditCommand::
  303. @@ -207,12 +208,12 @@ ui::TextEditCommand GetCommandForKeyEvent(const ui::KeyEvent& event) {
  304. if (shift && control)
  305. return ui::TextEditCommand::DELETE_TO_END_OF_LINE;
  306. #endif
  307. - if (control)
  308. + if (command)
  309. return ui::TextEditCommand::DELETE_WORD_FORWARD;
  310. return shift ? ui::TextEditCommand::CUT
  311. : ui::TextEditCommand::DELETE_FORWARD;
  312. case ui::VKEY_INSERT:
  313. - if (control && !shift)
  314. + if (command && !shift)
  315. return ui::TextEditCommand::COPY;
  316. return (shift && !control) ? ui::TextEditCommand::PASTE
  317. : ui::TextEditCommand::INVALID_COMMAND;
  318. @@ -354,9 +355,9 @@ Textfield::Textfield()
  319. // These allow BrowserView to pass edit commands from the Chrome menu to us
  320. // when we're focused by simply asking the FocusManager to
  321. // ProcessAccelerator() with the relevant accelerators.
  322. - AddAccelerator(ui::Accelerator(ui::VKEY_X, ui::EF_CONTROL_DOWN));
  323. - AddAccelerator(ui::Accelerator(ui::VKEY_C, ui::EF_CONTROL_DOWN));
  324. - AddAccelerator(ui::Accelerator(ui::VKEY_V, ui::EF_CONTROL_DOWN));
  325. + AddAccelerator(ui::Accelerator(ui::VKEY_X, ui::EF_PLATFORM_ACCELERATOR));
  326. + AddAccelerator(ui::Accelerator(ui::VKEY_C, ui::EF_PLATFORM_ACCELERATOR));
  327. + AddAccelerator(ui::Accelerator(ui::VKEY_V, ui::EF_PLATFORM_ACCELERATOR));
  328. #endif
  329. // Sometimes there are additional ignored views, such as the View representing