Add Cmd+Enter shortcut to toggle fullscreen

This commit is contained in:
Lawrence Chen 2026-02-25 18:26:29 -08:00
parent d517be8ddd
commit ede4e2fc99
2 changed files with 84 additions and 0 deletions

View file

@ -302,6 +302,17 @@ func shouldDispatchBrowserReturnViaFirstResponderKeyDown(
return keyCode == 36 || keyCode == 76
}
func shouldToggleMainWindowFullScreenForCommandEnterShortcut(
flags: NSEvent.ModifierFlags,
keyCode: UInt16
) -> Bool {
let normalizedFlags = flags
.intersection(.deviceIndependentFlagsMask)
.subtracting([.numericPad, .function, .capsLock])
guard normalizedFlags == [.command] else { return false }
return keyCode == 36 || keyCode == 76
}
func commandPaletteSelectionDeltaForKeyboardNavigation(
flags: NSEvent.ModifierFlags,
chars: String,
@ -4574,6 +4585,17 @@ final class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCent
return true
}
if shouldToggleMainWindowFullScreenForCommandEnterShortcut(
flags: event.modifierFlags,
keyCode: event.keyCode
) {
guard let targetWindow = mainWindowForShortcutEvent(event) else {
return false
}
targetWindow.toggleFullScreen(nil)
return true
}
// When the terminal has active IME composition (e.g. Korean, Japanese, Chinese
// input), don't intercept non-Cmd key events let them flow through to the
// input method. Cmd-based shortcuts (Cmd+T, Cmd+Shift+L, etc.) should still

View file

@ -1934,6 +1934,68 @@ final class BrowserReturnKeyDownRoutingTests: XCTestCase {
}
}
final class FullScreenShortcutTests: XCTestCase {
func testMatchesCommandReturn() {
XCTAssertTrue(
shouldToggleMainWindowFullScreenForCommandEnterShortcut(
flags: [.command],
keyCode: 36
)
)
}
func testMatchesCommandKeypadEnterWithNumericPadFlag() {
XCTAssertTrue(
shouldToggleMainWindowFullScreenForCommandEnterShortcut(
flags: [.command, .numericPad],
keyCode: 76
)
)
}
func testIgnoresCapsLockForCommandEnter() {
XCTAssertTrue(
shouldToggleMainWindowFullScreenForCommandEnterShortcut(
flags: [.command, .capsLock],
keyCode: 36
)
)
}
func testRejectsNonEnterKeyCodes() {
XCTAssertFalse(
shouldToggleMainWindowFullScreenForCommandEnterShortcut(
flags: [.command],
keyCode: 13
)
)
}
func testRejectsAdditionalModifiers() {
XCTAssertFalse(
shouldToggleMainWindowFullScreenForCommandEnterShortcut(
flags: [.command, .shift],
keyCode: 36
)
)
XCTAssertFalse(
shouldToggleMainWindowFullScreenForCommandEnterShortcut(
flags: [.command, .control],
keyCode: 36
)
)
}
func testRejectsWhenCommandIsMissing() {
XCTAssertFalse(
shouldToggleMainWindowFullScreenForCommandEnterShortcut(
flags: [],
keyCode: 36
)
)
}
}
final class BrowserZoomShortcutActionTests: XCTestCase {
func testZoomInSupportsEqualsAndPlusVariants() {
XCTAssertEqual(