From 9a0bbb8e95196d02e71a2b63c849a9201305290a Mon Sep 17 00:00:00 2001 From: KikooDX Date: Fri, 26 Feb 2021 10:30:22 +0100 Subject: [PATCH] Mouse behavior for graphical tablet (#1) --- src/conf.zig | 4 ++++ src/main.zig | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/conf.zig b/src/conf.zig index 6fb12b3..5d96dbc 100644 --- a/src/conf.zig +++ b/src/conf.zig @@ -21,6 +21,10 @@ fn col(r: u8, g: u8, b: u8) ray.Color { pub const mouse_enabled: bool = true; pub const mouse_left_btn: c_int = 0; pub const mouse_right_btn: c_int = 1; +// Set to true for better graphical tablet experience. +// * false: click to enter, draw, click to exit. +// * true: click to enter, draw, release to exit. +pub const mouse_graphic_tablet: bool = false; pub const theme = .{ .background = ray.BLACK, diff --git a/src/main.zig b/src/main.zig index 747277e..af90112 100644 --- a/src/main.zig +++ b/src/main.zig @@ -207,11 +207,15 @@ pub fn main() void { } const left_click: bool = ray.IsMouseButtonPressed(conf.mouse_left_btn); + const left_release: bool = ray.IsMouseButtonReleased(conf.mouse_left_btn); const right_click: bool = ray.IsMouseButtonPressed(conf.mouse_right_btn); + const right_release: bool = ray.IsMouseButtonReleased(conf.mouse_right_btn); const click: bool = left_click or right_click; + const release: bool = left_release or right_release; + const end_sel_event = if (conf.mouse_graphic_tablet) release else click; - // If click, get out of current mode and apply changes if necessary. - if (click and mouse.mode != Mouse.MouseMode.idle) { + // When end selection event, get out of current mode and apply changes if necessary. + if (end_sel_event and mouse.mode != Mouse.MouseMode.idle) { defer mouse.mode = Mouse.MouseMode.wait; // Select area.