macos-hotkeys-on-linux.patch 13 KB

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