From 8b69cfddd34487362bb8d4f03b1f3d61763ca1b4 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Sat, 25 Jan 2025 17:39:07 +0100 Subject: [PATCH] fix(win32 gui): add middle mouse support and fix right mouse button mapping --- src/win32/gui.zig | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/win32/gui.zig b/src/win32/gui.zig index 71761eb..9166b53 100644 --- a/src/win32/gui.zig +++ b/src/win32/gui.zig @@ -638,6 +638,8 @@ fn sendMouse( move, left_down, left_up, + middle_down, + middle_up, right_down, right_up, }, @@ -676,13 +678,14 @@ fn sendMouse( "B", switch (b) { .move => unreachable, - .left_down, .right_down => input.event.press, - .left_up, .right_up => input.event.release, + .left_down, .middle_down, .right_down => input.event.press, + .left_up, .middle_up, .right_up => input.event.release, }, switch (b) { .move => unreachable, .left_down, .left_up => @intFromEnum(input.mouse.BUTTON1), - .right_down, .right_up => @intFromEnum(input.mouse.BUTTON2), + .middle_down, .middle_up => @intFromEnum(input.mouse.BUTTON2), + .right_down, .right_up => @intFromEnum(input.mouse.BUTTON3), }, cell.cell.x, cell.cell.y, @@ -1036,6 +1039,14 @@ fn WndProc( sendMouse(hwnd, .left_up, wparam, lparam); return 0; }, + win32.WM_MBUTTONDOWN => { + sendMouse(hwnd, .middle_down, wparam, lparam); + return 0; + }, + win32.WM_MBUTTONUP => { + sendMouse(hwnd, .middle_up, wparam, lparam); + return 0; + }, win32.WM_RBUTTONDOWN => { sendMouse(hwnd, .right_down, wparam, lparam); return 0;