# Working patch for Portage Overlay pf4public www-client/ungoogled-chromium-88.0.4324.150-r2 # Copy to /etc/portage/patches/www-client/ungoogled-chromium/ and emerge like normal 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 index 234cb7afe1..d3f598278f 100644 --- 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 @@ -140,39 +140,39 @@ bool RenderViewContextMenuViews::GetAcceleratorForCommandId( return true; case IDC_CONTENT_CONTEXT_UNDO: - *accel = ui::Accelerator(ui::VKEY_Z, ui::EF_CONTROL_DOWN); + *accel = ui::Accelerator(ui::VKEY_Z, ui::EF_PLATFORM_ACCELERATOR); return true; case IDC_CONTENT_CONTEXT_REDO: // TODO(jcampan): should it be Ctrl-Y? *accel = ui::Accelerator(ui::VKEY_Z, - ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN); + ui::EF_SHIFT_DOWN | ui::EF_PLATFORM_ACCELERATOR); return true; case IDC_CONTENT_CONTEXT_CUT: - *accel = ui::Accelerator(ui::VKEY_X, ui::EF_CONTROL_DOWN); + *accel = ui::Accelerator(ui::VKEY_X, ui::EF_PLATFORM_ACCELERATOR); return true; case IDC_CONTENT_CONTEXT_COPY: - *accel = ui::Accelerator(ui::VKEY_C, ui::EF_CONTROL_DOWN); + *accel = ui::Accelerator(ui::VKEY_C, ui::EF_PLATFORM_ACCELERATOR); return true; case IDC_CONTENT_CONTEXT_INSPECTELEMENT: *accel = ui::Accelerator(ui::VKEY_I, - ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN); + ui::EF_SHIFT_DOWN | ui::EF_PLATFORM_ACCELERATOR); return true; case IDC_CONTENT_CONTEXT_PASTE: - *accel = ui::Accelerator(ui::VKEY_V, ui::EF_CONTROL_DOWN); + *accel = ui::Accelerator(ui::VKEY_V, ui::EF_PLATFORM_ACCELERATOR); return true; case IDC_CONTENT_CONTEXT_PASTE_AND_MATCH_STYLE: *accel = ui::Accelerator(ui::VKEY_V, - ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN); + ui::EF_SHIFT_DOWN | ui::EF_PLATFORM_ACCELERATOR); return true; case IDC_CONTENT_CONTEXT_SELECTALL: - *accel = ui::Accelerator(ui::VKEY_A, ui::EF_CONTROL_DOWN); + *accel = ui::Accelerator(ui::VKEY_A, ui::EF_PLATFORM_ACCELERATOR); return true; case IDC_CONTENT_CONTEXT_ROTATECCW: @@ -188,11 +188,11 @@ bool RenderViewContextMenuViews::GetAcceleratorForCommandId( return true; case IDC_PRINT: - *accel = ui::Accelerator(ui::VKEY_P, ui::EF_CONTROL_DOWN); + *accel = ui::Accelerator(ui::VKEY_P, ui::EF_PLATFORM_ACCELERATOR); return true; case IDC_RELOAD: - *accel = ui::Accelerator(ui::VKEY_R, ui::EF_CONTROL_DOWN); + *accel = ui::Accelerator(ui::VKEY_R, ui::EF_PLATFORM_ACCELERATOR); return true; case IDC_CONTENT_CONTEXT_SAVEAVAS: diff --git a/chrome/common/extensions/command.cc b/chrome/common/extensions/command.cc index 4732019d47..aa07642f40 100644 --- a/chrome/common/extensions/command.cc +++ b/chrome/common/extensions/command.cc @@ -103,7 +103,7 @@ ui::Accelerator ParseImpl(const std::string& accelerator, // Mac the developer has to specify MacCtrl). Therefore we treat this // as Command. modifiers |= ui::EF_COMMAND_DOWN; -#if defined(OS_MAC) +#if defined(OS_MAC) || defined(OS_LINUX) } else if (platform_key == values::kKeybindingPlatformDefault) { // If we see "Command+foo" in the Default section it can mean two // things, depending on the platform: diff --git a/content/renderer/pepper/pepper_plugin_instance_impl.cc b/content/renderer/pepper/pepper_plugin_instance_impl.cc index 9692196ee8..12dcbd57e3 100644 --- a/content/renderer/pepper/pepper_plugin_instance_impl.cc +++ b/content/renderer/pepper/pepper_plugin_instance_impl.cc @@ -1434,7 +1434,7 @@ void PepperPluginInstanceImpl::SelectAll() { // TODO(https://crbug.com/836074) |kPlatformModifier| should be // |ui::EF_PLATFORM_ACCELERATOR| (|ui::EF_COMMAND_DOWN| on Mac). - static const ui::EventFlags kPlatformModifier = ui::EF_CONTROL_DOWN; + static const ui::EventFlags kPlatformModifier = ui::EF_COMMAND_DOWN; // Synthesize a ctrl + a key event to send to the plugin and let it sort out // the event. See also https://crbug.com/739529. ui::KeyEvent char_event(L'A', ui::VKEY_A, ui::DomCode::NONE, diff --git a/third_party/blink/renderer/core/editing/editing_behavior.cc b/third_party/blink/renderer/core/editing/editing_behavior.cc index 0bfbf2d335..b2060a134f 100644 --- a/third_party/blink/renderer/core/editing/editing_behavior.cc +++ b/third_party/blink/renderer/core/editing/editing_behavior.cc @@ -45,7 +45,7 @@ const unsigned kCtrlKey = WebInputEvent::kControlKey; const unsigned kAltKey = WebInputEvent::kAltKey; const unsigned kShiftKey = WebInputEvent::kShiftKey; const unsigned kMetaKey = WebInputEvent::kMetaKey; -#if defined(OS_MAC) +#if defined(OS_MAC) || defined(OS_LINUX) // Aliases for the generic key defintions to make kbd shortcuts definitions more // readable on OS X. const unsigned kOptionKey = kAltKey; @@ -88,7 +88,7 @@ struct DomKeyKeyDownEntry { const KeyboardCodeKeyDownEntry kKeyboardCodeKeyDownEntries[] = { {VKEY_LEFT, 0, "MoveLeft"}, {VKEY_LEFT, kShiftKey, "MoveLeftAndModifySelection"}, -#if defined(OS_MAC) +#if defined(OS_MAC) || defined(OS_LINUX) {VKEY_LEFT, kOptionKey, "MoveWordLeft"}, {VKEY_LEFT, kOptionKey | kShiftKey, "MoveWordLeftAndModifySelection"}, #else @@ -97,7 +97,7 @@ const KeyboardCodeKeyDownEntry kKeyboardCodeKeyDownEntries[] = { #endif {VKEY_RIGHT, 0, "MoveRight"}, {VKEY_RIGHT, kShiftKey, "MoveRightAndModifySelection"}, -#if defined(OS_MAC) +#if defined(OS_MAC) || defined(OS_LINUX) {VKEY_RIGHT, kOptionKey, "MoveWordRight"}, {VKEY_RIGHT, kOptionKey | kShiftKey, "MoveWordRightAndModifySelection"}, #else @@ -110,7 +110,7 @@ const KeyboardCodeKeyDownEntry kKeyboardCodeKeyDownEntries[] = { {VKEY_DOWN, 0, "MoveDown"}, {VKEY_DOWN, kShiftKey, "MoveDownAndModifySelection"}, {VKEY_NEXT, kShiftKey, "MovePageDownAndModifySelection"}, -#if !defined(OS_MAC) +#if !defined(OS_MAC) && !defined(OS_LINUX) {VKEY_UP, kCtrlKey, "MoveParagraphBackward"}, {VKEY_UP, kCtrlKey | kShiftKey, "MoveParagraphBackwardAndModifySelection"}, {VKEY_DOWN, kCtrlKey, "MoveParagraphForward"}, @@ -120,18 +120,18 @@ const KeyboardCodeKeyDownEntry kKeyboardCodeKeyDownEntries[] = { #endif {VKEY_HOME, 0, "MoveToBeginningOfLine"}, {VKEY_HOME, kShiftKey, "MoveToBeginningOfLineAndModifySelection"}, -#if defined(OS_MAC) +#if defined(OS_MAC) || defined(OS_LINUX) {VKEY_PRIOR, kOptionKey, "MovePageUp"}, {VKEY_NEXT, kOptionKey, "MovePageDown"}, #endif -#if !defined(OS_MAC) +#if !defined(OS_MAC) && !defined(OS_LINUX) {VKEY_HOME, kCtrlKey, "MoveToBeginningOfDocument"}, {VKEY_HOME, kCtrlKey | kShiftKey, "MoveToBeginningOfDocumentAndModifySelection"}, #endif {VKEY_END, 0, "MoveToEndOfLine"}, {VKEY_END, kShiftKey, "MoveToEndOfLineAndModifySelection"}, -#if !defined(OS_MAC) +#if !defined(OS_MAC) && !defined(OS_LINUX) {VKEY_END, kCtrlKey, "MoveToEndOfDocument"}, {VKEY_END, kCtrlKey | kShiftKey, "MoveToEndOfDocumentAndModifySelection"}, #endif @@ -145,7 +145,7 @@ const KeyboardCodeKeyDownEntry kKeyboardCodeKeyDownEntries[] = { {VKEY_BACK, kCtrlKey, "DeleteWordBackward"}, {VKEY_DELETE, kCtrlKey, "DeleteWordForward"}, #endif -#if defined(OS_MAC) +#if defined(OS_MAC) || defined(OS_LINUX) {'B', kCommandKey, "ToggleBold"}, {'I', kCommandKey, "ToggleItalic"}, #else @@ -168,14 +168,14 @@ const KeyboardCodeKeyDownEntry kKeyboardCodeKeyDownEntries[] = { #if !defined(OS_MAC) // On OS X, we pipe these back to the browser, so that it can do menu item // blinking. - {'C', kCtrlKey, "Copy"}, - {'V', kCtrlKey, "Paste"}, - {'V', kCtrlKey | kShiftKey, "PasteAndMatchStyle"}, - {'X', kCtrlKey, "Cut"}, - {'A', kCtrlKey, "SelectAll"}, - {'Z', kCtrlKey, "Undo"}, - {'Z', kCtrlKey | kShiftKey, "Redo"}, - {'Y', kCtrlKey, "Redo"}, + {'C', kCommandKey, "Copy"}, + {'V', kCommandKey, "Paste"}, + {'V', kCommandKey | kShiftKey, "PasteAndMatchStyle"}, + {'X', kCommandKey, "Cut"}, + {'A', kCommandKey, "SelectAll"}, + {'Z', kCommandKey, "Undo"}, + {'Z', kCommandKey | kShiftKey, "Redo"}, + {'Y', kCommandKey, "Redo"}, #endif #if defined(OS_WIN) {VKEY_BACK, kAltKey, "Undo"}, @@ -274,19 +274,19 @@ bool EditingBehavior::ShouldInsertCharacter(const KeyboardEvent& event) const { // unexpected behaviour if (ch < ' ') return false; -#if defined(OS_LINUX) || defined(OS_CHROMEOS) +//#if defined(OS_LINUX) || defined(OS_CHROMEOS) // According to XKB map no keyboard combinations with ctrl key are mapped to // printable characters, however we need the filter as the DomKey/text could // contain printable characters. - if (event.ctrlKey()) - return false; -#elif !defined(OS_WIN) + //if (event.ctrlKey()) + // return false; +#if !defined(OS_WIN) // Don't insert ASCII character if ctrl w/o alt or meta is on. // On Mac, we should ignore events when meta is on (Command-). if (ch < 0x80) { if (event.ctrlKey() && !event.altKey()) return false; -#if defined(OS_MAC) +#if defined(OS_MAC) || defined(OS_LINUX) if (event.metaKey()) return false; #endif diff --git a/ui/base/window_open_disposition.cc b/ui/base/window_open_disposition.cc index d90ce70031..32dfebc127 100644 --- a/ui/base/window_open_disposition.cc +++ b/ui/base/window_open_disposition.cc @@ -17,7 +17,7 @@ WindowOpenDisposition DispositionFromClick( bool shift_key, WindowOpenDisposition disposition_for_current_tab) { // MacOS uses meta key (Command key) to spawn new tabs. -#if defined(OS_APPLE) +#if defined(OS_APPLE) || defined(OS_LINUX) if (middle_button || meta_key) #else if (middle_button || ctrl_key) diff --git a/ui/events/base_event_utils.cc b/ui/events/base_event_utils.cc index f5c709d2e6..6123022081 100644 --- a/ui/events/base_event_utils.cc +++ b/ui/events/base_event_utils.cc @@ -22,6 +22,8 @@ const int kSystemKeyModifierMask = EF_ALT_DOWN | EF_COMMAND_DOWN; #elif defined(OS_APPLE) // Alt modifier is used to input extended characters on Mac. const int kSystemKeyModifierMask = EF_COMMAND_DOWN; +#elif defined(OS_LINUX) +const int kSystemKeyModifierMask = EF_COMMAND_DOWN; #else const int kSystemKeyModifierMask = EF_ALT_DOWN; #endif // !defined(OS_CHROMEOS) && !defined(OS_APPLE) diff --git a/ui/events/event_constants.h b/ui/events/event_constants.h index bc04d9d67b..58c446d1fe 100644 --- a/ui/events/event_constants.h +++ b/ui/events/event_constants.h @@ -50,7 +50,9 @@ enum EventFlags { #if defined(OS_APPLE) EF_PLATFORM_ACCELERATOR = EF_COMMAND_DOWN, #else - EF_PLATFORM_ACCELERATOR = EF_CONTROL_DOWN, + //EF_PLATFORM_ACCELERATOR = EF_CONTROL_DOWN, + // TODO(hparadiz): Build Configurable EF_PLATFORM_ACCELERATOR from chrome://flags + EF_PLATFORM_ACCELERATOR = EF_COMMAND_DOWN, #endif }; diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc index 432332a7fa..b70ae97293 100644 --- a/ui/views/controls/textfield/textfield.cc +++ b/ui/views/controls/textfield/textfield.cc @@ -130,46 +130,47 @@ ui::TextEditCommand GetCommandForKeyEvent(const ui::KeyEvent& event) { const bool shift = event.IsShiftDown(); const bool control = event.IsControlDown() || event.IsCommandDown(); const bool alt = event.IsAltDown() || event.IsAltGrDown(); + const bool command = event.IsCommandDown(); switch (event.key_code()) { case ui::VKEY_Z: if (control && !shift && !alt) return ui::TextEditCommand::UNDO; - return (control && shift && !alt) ? ui::TextEditCommand::REDO + return (command && shift && !alt) ? ui::TextEditCommand::REDO : ui::TextEditCommand::INVALID_COMMAND; case ui::VKEY_Y: - return (control && !alt) ? ui::TextEditCommand::REDO + return (command && !alt) ? ui::TextEditCommand::REDO : ui::TextEditCommand::INVALID_COMMAND; case ui::VKEY_A: - return (control && !alt) ? ui::TextEditCommand::SELECT_ALL + return (command && !alt) ? ui::TextEditCommand::SELECT_ALL : ui::TextEditCommand::INVALID_COMMAND; case ui::VKEY_X: - return (control && !alt) ? ui::TextEditCommand::CUT + return (command && !alt) ? ui::TextEditCommand::CUT : ui::TextEditCommand::INVALID_COMMAND; case ui::VKEY_C: - return (control && !alt) ? ui::TextEditCommand::COPY + return (command && !alt) ? ui::TextEditCommand::COPY : ui::TextEditCommand::INVALID_COMMAND; case ui::VKEY_V: - return (control && !alt) ? ui::TextEditCommand::PASTE + return (command && !alt) ? ui::TextEditCommand::PASTE : ui::TextEditCommand::INVALID_COMMAND; case ui::VKEY_RIGHT: // Ignore alt+right, which may be a browser navigation shortcut. if (alt) return ui::TextEditCommand::INVALID_COMMAND; if (!shift) { - return control ? ui::TextEditCommand::MOVE_WORD_RIGHT + return command ? ui::TextEditCommand::MOVE_WORD_RIGHT : ui::TextEditCommand::MOVE_RIGHT; } - return control ? ui::TextEditCommand::MOVE_WORD_RIGHT_AND_MODIFY_SELECTION + return command ? ui::TextEditCommand::MOVE_WORD_RIGHT_AND_MODIFY_SELECTION : ui::TextEditCommand::MOVE_RIGHT_AND_MODIFY_SELECTION; case ui::VKEY_LEFT: // Ignore alt+left, which may be a browser navigation shortcut. if (alt) return ui::TextEditCommand::INVALID_COMMAND; if (!shift) { - return control ? ui::TextEditCommand::MOVE_WORD_LEFT + return command ? ui::TextEditCommand::MOVE_WORD_LEFT : ui::TextEditCommand::MOVE_LEFT; } - return control ? ui::TextEditCommand::MOVE_WORD_LEFT_AND_MODIFY_SELECTION + return command ? ui::TextEditCommand::MOVE_WORD_LEFT_AND_MODIFY_SELECTION : ui::TextEditCommand::MOVE_LEFT_AND_MODIFY_SELECTION; case ui::VKEY_HOME: return shift ? ui::TextEditCommand:: @@ -207,12 +208,12 @@ ui::TextEditCommand GetCommandForKeyEvent(const ui::KeyEvent& event) { if (shift && control) return ui::TextEditCommand::DELETE_TO_END_OF_LINE; #endif - if (control) + if (command) return ui::TextEditCommand::DELETE_WORD_FORWARD; return shift ? ui::TextEditCommand::CUT : ui::TextEditCommand::DELETE_FORWARD; case ui::VKEY_INSERT: - if (control && !shift) + if (command && !shift) return ui::TextEditCommand::COPY; return (shift && !control) ? ui::TextEditCommand::PASTE : ui::TextEditCommand::INVALID_COMMAND; @@ -354,9 +355,9 @@ Textfield::Textfield() // These allow BrowserView to pass edit commands from the Chrome menu to us // when we're focused by simply asking the FocusManager to // ProcessAccelerator() with the relevant accelerators. - AddAccelerator(ui::Accelerator(ui::VKEY_X, ui::EF_CONTROL_DOWN)); - AddAccelerator(ui::Accelerator(ui::VKEY_C, ui::EF_CONTROL_DOWN)); - AddAccelerator(ui::Accelerator(ui::VKEY_V, ui::EF_CONTROL_DOWN)); + AddAccelerator(ui::Accelerator(ui::VKEY_X, ui::EF_PLATFORM_ACCELERATOR)); + AddAccelerator(ui::Accelerator(ui::VKEY_C, ui::EF_PLATFORM_ACCELERATOR)); + AddAccelerator(ui::Accelerator(ui::VKEY_V, ui::EF_PLATFORM_ACCELERATOR)); #endif // Sometimes there are additional ignored views, such as the View representing