diff options
Diffstat (limited to 'vendor/libghostty-vt/src/os/mouse.zig')
| -rw-r--r-- | vendor/libghostty-vt/src/os/mouse.zig | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/vendor/libghostty-vt/src/os/mouse.zig b/vendor/libghostty-vt/src/os/mouse.zig new file mode 100644 index 00000000..d68bb226 --- /dev/null +++ b/vendor/libghostty-vt/src/os/mouse.zig @@ -0,0 +1,25 @@ +const std = @import("std"); +const builtin = @import("builtin"); +const objc = @import("objc"); + +const log = std.log.scoped(.os); + +/// The system-configured double-click interval if its available. +pub fn clickInterval() ?u32 { + return switch (builtin.os.tag) { + // On macOS, we can ask the system. + .macos => macos: { + const NSEvent = objc.getClass("NSEvent") orelse { + log.err("NSEvent class not found. Can't get click interval.", .{}); + return null; + }; + + // Get the interval and convert to ms + const interval = NSEvent.msgSend(f64, objc.sel("doubleClickInterval"), .{}); + const ms = @as(u32, @intFromFloat(@ceil(interval * 1000))); + break :macos ms; + }, + + else => null, + }; +} |
