Keytips: Word for Windows' tab letters (#922)
Observed in Word for Windows (Microsoft 365): pressing Alt badges the tabs File F, Home H, Insert N, Design G, Layout P, References S, Mailings M, Review R, View W, Help Y, and the Search box Q. Before, WordCraft used Design L, References R, Review S and View V, and File and Help had no letter, so Alt, W or Alt, R went to the wrong tab for anyone used to Word. Now the letters match; Alt, F opens the Backstage and ends keytips. Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
0acf6bd512
commit
90515abd1e
|
|
@ -136,6 +136,7 @@ Ranked, to beta (detail and remaining milestones in [docs/roadmap.md](docs/roadm
|
|||
| 2026-10-12 | New documents follow the system region (#838): A4 and centimetres outside the US (Letter in the CLDR Letter territories, inches in the US), lengths written with the region's decimal separator (`2,54 cm`) and typed with either; an explicit Measurement units choice wins; `file.options {"region"}` for agents |
|
||||
| 2026-10-12 | Paste from other programs keeps their formatting (#687): Ctrl+V and Home › Paste read the system clipboard's HTML (and RTF on Windows and Wayland); Merge Formatting takes the destination's font and paragraph and keeps bold, italic, underline and strikethrough; Paste Special lists what the system clipboard holds (HTML, RTF, picture, text). Linux: pictures copied in a browser or Spectacle paste on KDE and other Wayland desktops (data-control clipboard), and a paste that finds nothing usable names what the clipboard holds instead of "empty" (#833) |
|
||||
| 2026-10-12 | PDF export of long documents with many internal links (a linked table of contents) is linear: NIH's 67-page protocol template 10.6 s → 0.9 s |
|
||||
| 2026-10-12 | Keytips: Word for Windows' tab letters (File F, Design G, References S, Review R, View W, Help Y) |
|
||||
| 2026-10-11 | Hide White Space (#645): `view.hideWhiteSpace` (View › Show checkbox, or double-click the gap between pages) collapses margins, headers and footers between pages to a thin line in Print Layout; screen only, page count unchanged |
|
||||
| 2026-10-11 | Fonts: Palatino Linotype and Book Antiqua fall back to Palatino (macOS) or TeX Gyre Pagella / P052 / URW Palladio (Linux) before generic serif (#670) |
|
||||
|---|---|
|
||||
|
|
|
|||
|
|
@ -65,19 +65,20 @@ impl Target {
|
|||
}
|
||||
}
|
||||
|
||||
/// Word's tab letters. `File` (Backstage only) and `Help` (dialog-only content) have none.
|
||||
/// Word's tab letters, as Word for Windows shows them after Alt (File F, Design G, References S,
|
||||
/// Review R, View W, Help Y). File opens the Backstage.
|
||||
const TAB_LETTERS: [(&str, &str); 11] = [
|
||||
("File", ""),
|
||||
("File", "F"),
|
||||
("Home", "H"),
|
||||
("Insert", "N"),
|
||||
("Draw", "D"),
|
||||
("Design", "L"),
|
||||
("Design", "G"),
|
||||
("Layout", "P"),
|
||||
("References", "R"),
|
||||
("References", "S"),
|
||||
("Mailings", "M"),
|
||||
("Review", "S"),
|
||||
("View", "V"),
|
||||
("Help", ""),
|
||||
("Review", "R"),
|
||||
("View", "W"),
|
||||
("Help", "Y"),
|
||||
];
|
||||
|
||||
/// The letter badge for a tab (empty when it has none).
|
||||
|
|
@ -539,7 +540,8 @@ pub fn handle_key(app: &mut WordApp, key: egui::Key) -> bool {
|
|||
match hit {
|
||||
Some(tab) => {
|
||||
let _ = app.run("ui.tab", serde_json::json!({ "tab": tab }));
|
||||
app.ui.keytips = Phase::Commands;
|
||||
// File opens the Backstage: no ribbon commands to badge.
|
||||
app.ui.keytips = if tab == "File" { Phase::Off } else { Phase::Commands };
|
||||
}
|
||||
None => app.ui.keytips = Phase::Off,
|
||||
}
|
||||
|
|
@ -841,16 +843,17 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn tab_letters_match_word() {
|
||||
// Observed in Word for Windows (Microsoft 365): Alt shows these over the tabs.
|
||||
assert_eq!(tab_letter("File"), "F");
|
||||
assert_eq!(tab_letter("Home"), "H");
|
||||
assert_eq!(tab_letter("Insert"), "N");
|
||||
assert_eq!(tab_letter("Design"), "L");
|
||||
assert_eq!(tab_letter("Design"), "G");
|
||||
assert_eq!(tab_letter("Layout"), "P");
|
||||
assert_eq!(tab_letter("References"), "R");
|
||||
assert_eq!(tab_letter("References"), "S");
|
||||
assert_eq!(tab_letter("Mailings"), "M");
|
||||
assert_eq!(tab_letter("Review"), "S");
|
||||
assert_eq!(tab_letter("View"), "V");
|
||||
assert_eq!(tab_letter("File"), "");
|
||||
assert_eq!(tab_letter("Help"), "");
|
||||
assert_eq!(tab_letter("Review"), "R");
|
||||
assert_eq!(tab_letter("View"), "W");
|
||||
assert_eq!(tab_letter("Help"), "Y");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
@ -970,6 +973,21 @@ mod tests {
|
|||
assert_eq!(a.ui.keytips, Phase::Commands);
|
||||
assert!(handle_key(&mut a, egui::Key::F));
|
||||
assert_eq!(a.ui.keytips, Phase::Off);
|
||||
// Alt, F: the Backstage, and keytips end.
|
||||
a.ui.backstage = false;
|
||||
activate(&mut a);
|
||||
assert!(handle_key(&mut a, egui::Key::F));
|
||||
assert!(a.ui.backstage, "Alt, F opens File");
|
||||
assert_eq!(a.ui.keytips, Phase::Off);
|
||||
// Alt, W: View; Alt, R: Review (Word's letters, not V and S).
|
||||
a.ui.backstage = false;
|
||||
activate(&mut a);
|
||||
assert!(handle_key(&mut a, egui::Key::W));
|
||||
assert_eq!((a.ui.tab.as_str(), a.ui.keytips), ("View", Phase::Commands));
|
||||
a.ui.keytips = Phase::Off;
|
||||
activate(&mut a);
|
||||
assert!(handle_key(&mut a, egui::Key::R));
|
||||
assert_eq!(a.ui.tab, "Review");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ own (`AGENTS.md`: no Microsoft iconography, ever).
|
|||
| 2026-10-11 | trivial | Alt activation handles native key/modifier events in either order, including key-up with the old Alt flag; taps toggle once, chords and focus loss do not activate KeyTips |
|
||||
| 2026-10-11 | trivial | Quick Access Toolbar KeyTips (#620): 1–9, zero-prefixed numbers for longer toolbars, disabled commands stay disabled, Escape cancels, badge keystrokes never type into the document; persisted File › Options switch |
|
||||
| 2026-10-11 | trivial | Ribbon buttons that run a command (alignment, Bold, styles…) hand keyboard focus back to the document, so typing continues without another click; they also report their name and enabled state to screen readers (#686) |
|
||||
| 2026-10-12 | trivial | Keytips use Word for Windows' tab letters, as observed there: File F (opens the Backstage), Design G, References S, Review R, View W, Help Y (were L, R, S, V and none) |
|
||||
| 2026-10-11 | trivial | Tables on the page: column and row borders and the resize handle drag, with a dashed guide and one undo step per drag (#217) |
|
||||
| 2026-10-11 | trivial | Animation effects › Use system setting also reads macOS (Reduce motion) and the Linux/BSD desktops (settings portal: the cross-desktop reduced-motion preference, GNOME's switch, KDE's animation speed; the GTK and KDE settings files where no portal answers), and follows a change without a restart |
|
||||
| 2026-10-11 | trivial | Animation effects setting in File › Options › Accessibility (Use system setting, On, Off), kept between runs: the app eased wheel scrolling, zooming and its fades whatever the system's setting was; off, they land at once. Follows the system's setting on Windows and in browsers; `ui.animations` for agents |
|
||||
|
|
|
|||
Loading…
Reference in New Issue