mirror of
https://github.com/electron/electron.git
synced 2026-01-10 07:58:08 -05:00
* chore: bump chromium in DEPS to 132.0.6791.0 * 5804481: [UI] Migrate remaining clients of `MenuSourceType` https://chromium-review.googlesource.com/c/chromium/src/+/5804481 * chore: try revert PA CL * chore: bump chromium in DEPS to 132.0.6793.0 * chore: bump chromium in DEPS to 132.0.6794.0 * 5952404: Clean up //ui/base/resource from Lacros code. https://chromium-review.googlesource.com/c/chromium/src/+/5952404 * 5920842: Generate combined grd for PEPC strings and use them in the element https://chromium-review.googlesource.com/c/chromium/src/+/5920842 * 5943708: Enable DynamicSafeAreaInsets for eligible users only https://chromium-review.googlesource.com/c/chromium/src/+/5943708 * chore: fixup patch indices * 5937004: Remove components/services/language_detection https://chromium-review.googlesource.com/c/chromium/src/+/5937004 * 5920322: [UI] Use mojo enum for `MenuSourceType` in ui/views/controls/ https://chromium-review.googlesource.com/c/chromium/src/+/5920322 * chore: bump chromium in DEPS to 132.0.6797.0 * 5947724: [ui] Add missing shortcut text for VKEY_COMMAND on linux https://chromium-review.googlesource.com/c/chromium/src/+/5947724 * chore: fixup patch indices * 5948024: [DNT] Fix NavigationController raw_ptr during WebContents destruction https://chromium-review.googlesource.com/c/chromium/src/+/5948024 * 5945209: Roll libc++ from c8eec3629a9e to e2c39ff9388b (1 revision) https://chromium-review.googlesource.com/c/chromium/src/+/5945209 * chore: bump chromium in DEPS to 132.0.6799.0 * chore: bump chromium in DEPS to 132.0.6801.0 * chore: bump chromium in DEPS to 132.0.6803.0 * 5942398: Remove some chrome:: namespace from chrome/browser/win/* Refs: https://chromium-review.googlesource.com/c/chromium/src/+/5942398 * 5963016: FSA: Use the profile path for base::DIR_HOME on ChromeOS Refs: https://chromium-review.googlesource.com/c/chromium/src/+/5963016 * chore: fixup patch indices * chore: bump chromium in DEPS to 132.0.6805.0 * 5924816: [macOS][FSA] Block Access to Application Bundle Path Refs: https://chromium-review.googlesource.com/c/chromium/src/+/5924816 * 5962517: [media] Apply inside blink to renderer/platform/media Refs: https://chromium-review.googlesource.com/c/chromium/src/+/5962517 * 5829616: MPArch based GuestViews basic implementation Refs: https://chromium-review.googlesource.com/c/chromium/src/+/5829616 * 5953710: Expose a rust_static_library instead of raw rs file from rust_bindgen Refs: https://chromium-review.googlesource.com/c/chromium/src/+/5953710 * chore: fixup patch indices * chore: disable ELF CREL on Linux Arm 5938657: Reapply "Enable ELF CREL, which reduces the size of ELF relocatable object files." | https://chromium-review.googlesource.com/c/chromium/src/+/5938657 * chore: bump chromium in DEPS to 132.0.6807.0 * 5868889: Shared Storage: Support saved queries in selectURL Refs: https://chromium-review.googlesource.com/c/chromium/src/+/5868889 * Revert "5956408: [fastapi] Promote deprecation of FastApiTypedArray" Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5956408 * Revert "5962696: [mojo] Force blink headers to only be included in blink" Refs: https://chromium-review.googlesource.com/c/chromium/src/+/5962696 * chore: update patches * 5973073: [Extensions] Improve warnings parsing (host) permissions in MV3 Refs: https://chromium-review.googlesource.com/c/chromium/src/+/5973073 * chore: update filenames.libcxx.gni * Apply suggestions from code review Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: David Sanders <dsanders11@ucsbalum.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
86 lines
3.3 KiB
Diff
86 lines
3.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Cheng Zhao <zcbenz@gmail.com>
|
|
Date: Thu, 4 Oct 2018 14:57:02 -0700
|
|
Subject: fix: improve shortcut text of Accelerator
|
|
|
|
This patch makes three changes to Accelerator::GetShortcutText to improve shortcut display text in menus:
|
|
|
|
1. Ctrl-Alt-<Key> accelerators show as Ctrl-Alt-<Key> instead of as Ctrl-<Key>
|
|
2. F2-F24 accelerators show up as such
|
|
3. Ctrl-Shift-= and Ctrl-Plus show up as such
|
|
|
|
diff --git a/ui/base/accelerators/accelerator.cc b/ui/base/accelerators/accelerator.cc
|
|
index 91709fe9dece5baeca989c1b25d83342c0ac6ac6..ed1ff076b1db6b77d0684bae1931714bf575ebe8 100644
|
|
--- a/ui/base/accelerators/accelerator.cc
|
|
+++ b/ui/base/accelerators/accelerator.cc
|
|
@@ -12,6 +12,7 @@
|
|
#include "base/i18n/rtl.h"
|
|
#include "base/notreached.h"
|
|
#include "base/strings/string_util.h"
|
|
+#include "base/strings/stringprintf.h"
|
|
#include "base/strings/utf_string_conversions.h"
|
|
#include "build/build_config.h"
|
|
#include "build/chromeos_buildflags.h"
|
|
@@ -184,6 +185,11 @@ std::u16string Accelerator::GetShortcutText() const {
|
|
#endif
|
|
|
|
if (shortcut.empty()) {
|
|
+ // When a shifted char is explicitly specified, for example Ctrl+Plus,
|
|
+ // use the shifted char directly.
|
|
+ if (shifted_char) {
|
|
+ shortcut += *shifted_char;
|
|
+ } else {
|
|
#if BUILDFLAG(IS_WIN)
|
|
// Our fallback is to try translate the key code to a regular character
|
|
// unless it is one of digits (VK_0 to VK_9). Some keyboard
|
|
@@ -207,6 +213,10 @@ std::u16string Accelerator::GetShortcutText() const {
|
|
shortcut +=
|
|
static_cast<std::u16string::value_type>(base::ToUpperASCII(c));
|
|
#endif
|
|
+ }
|
|
+ if (key_code_ > VKEY_F1 && key_code_ <= VKEY_F24)
|
|
+ shortcut = base::UTF8ToUTF16(
|
|
+ base::StringPrintf("F%d", key_code_ - VKEY_F1 + 1));
|
|
}
|
|
|
|
#if BUILDFLAG(IS_MAC)
|
|
@@ -391,7 +401,7 @@ std::u16string Accelerator::ApplyLongFormModifiers(
|
|
const std::u16string& shortcut) const {
|
|
std::u16string result = shortcut;
|
|
|
|
- if (IsShiftDown())
|
|
+ if (!shifted_char && IsShiftDown())
|
|
result = ApplyModifierToAcceleratorString(result, IDS_APP_SHIFT_KEY);
|
|
|
|
// Note that we use 'else-if' in order to avoid using Ctrl+Alt as a shortcut.
|
|
@@ -399,7 +409,7 @@ std::u16string Accelerator::ApplyLongFormModifiers(
|
|
// more information.
|
|
if (IsCtrlDown())
|
|
result = ApplyModifierToAcceleratorString(result, IDS_APP_CTRL_KEY);
|
|
- else if (IsAltDown())
|
|
+ if (IsAltDown())
|
|
result = ApplyModifierToAcceleratorString(result, IDS_APP_ALT_KEY);
|
|
|
|
if (IsCmdDown()) {
|
|
diff --git a/ui/base/accelerators/accelerator.h b/ui/base/accelerators/accelerator.h
|
|
index d5fe7062b4d7932782a0b46371f316f8bf9b499d..adfc3b796379c65bd3406374a44b169560ca8795 100644
|
|
--- a/ui/base/accelerators/accelerator.h
|
|
+++ b/ui/base/accelerators/accelerator.h
|
|
@@ -16,6 +16,7 @@
|
|
#include <utility>
|
|
|
|
#include "base/component_export.h"
|
|
+#include "third_party/abseil-cpp/absl/types/optional.h"
|
|
#include "base/time/time.h"
|
|
#include "build/build_config.h"
|
|
#include "ui/events/event_constants.h"
|
|
@@ -130,6 +131,8 @@ class COMPONENT_EXPORT(UI_BASE) Accelerator {
|
|
return interrupted_by_mouse_event_;
|
|
}
|
|
|
|
+ absl::optional<char16_t> shifted_char;
|
|
+
|
|
private:
|
|
friend class AcceleratorTestMac;
|
|
std::u16string ApplyLongFormModifiers(const std::u16string& shortcut) const;
|