Merge branch 'ghostty-org:main' into feature-custom-split-size

This commit is contained in:
I Duran
2024-11-12 11:21:16 +03:00
committed by GitHub
2 changed files with 22 additions and 7 deletions

View File

@ -98,6 +98,12 @@ pub fn build(b: *std.Build) !void {
"Enables the use of Adwaita when using the GTK rendering backend.",
) orelse true;
const pie = b.option(
bool,
"pie",
"Build a Position Independent Executable",
) orelse false;
const conformance = b.option(
[]const u8,
"conformance",
@ -282,6 +288,9 @@ pub fn build(b: *std.Build) !void {
// Exe
if (exe_) |exe| {
// Set PIE if requested
if (pie) exe.pie = true;
// Add the shared dependencies
_ = try addDeps(b, exe, config);

View File

@ -704,12 +704,6 @@ extension Ghostty {
/// Special case handling for some control keys
override func performKeyEquivalent(with event: NSEvent) -> Bool {
// Only process keys when Control is the only modifier
if (!event.modifierFlags.contains(.control) ||
!event.modifierFlags.isDisjoint(with: [.shift, .command, .option])) {
return false
}
// Only process key down events
if (event.type != .keyDown) {
return false
@ -722,11 +716,23 @@ extension Ghostty {
return false
}
// Only process keys when Control is active. All known issues we're
// resolving happen only in this scenario. This probably isn't fully robust
// but we can broaden the scope as we find more cases.
if (!event.modifierFlags.contains(.control)) {
return false
}
let equivalent: String
switch (event.charactersIgnoringModifiers) {
case "/":
// Treat C-/ as C-_. We do this because C-/ makes macOS make a beep
// sound and we don't like the beep sound.
if (!event.modifierFlags.contains(.control) ||
!event.modifierFlags.isDisjoint(with: [.shift, .command, .option])) {
return false
}
equivalent = "_"
case "\r":
@ -742,7 +748,7 @@ extension Ghostty {
let newEvent = NSEvent.keyEvent(
with: .keyDown,
location: event.locationInWindow,
modifierFlags: .control,
modifierFlags: event.modifierFlags,
timestamp: event.timestamp,
windowNumber: event.windowNumber,
context: nil,