From 383f511fe4554c0edae5ef1d64feea4d8db45cb6 Mon Sep 17 00:00:00 2001 From: yukirij Date: Tue, 15 Oct 2024 12:46:52 -0700 Subject: [PATCH] Fix mouse offset for high resolution displays. --- www/js/interface.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/www/js/interface.js b/www/js/interface.js index 346714c..3441b28 100644 --- a/www/js/interface.js +++ b/www/js/interface.js @@ -136,14 +136,17 @@ const INTERFACE = { INTERFACE_DATA.hover = null; + let mouse_x = event.offsetX * (window.devicePixelRatio || 1); + let mouse_y = event.offsetY * (window.devicePixelRatio || 1); + // Handle board area - if(event.offsetY >= INTERFACE_DATA.Render.margin.t && event.offsetY < INTERFACE_DATA.Render.margin.l + INTERFACE_DATA.Render.area.y) { - if(event.offsetX >= INTERFACE_DATA.Render.offset.x && event.offsetX < INTERFACE_DATA.Render.offset.x + INTERFACE_DATA.Render.board_width) { + if(mouse_y >= INTERFACE_DATA.Render.margin.t && mouse_y < INTERFACE_DATA.Render.margin.l + INTERFACE_DATA.Render.area.y) { + if(mouse_x >= INTERFACE_DATA.Render.offset.x && mouse_x < INTERFACE_DATA.Render.offset.x + INTERFACE_DATA.Render.board_width) { let basis_x = INTERFACE_DATA.Render.offset.x + halfradius; let basis_y = INTERFACE_DATA.Render.offset.y + (14 * apothem); - let x = (event.offsetX - basis_x) / grid_offset_x; + let x = (mouse_x - basis_x) / grid_offset_x; let y = -(event.offsetY - basis_y) / apothem; let kx = Math.floor(x); @@ -169,12 +172,12 @@ const INTERFACE = { } // Handle pool area - else if(event.offsetX >= INTERFACE_DATA.Render.pool_offset && event.offsetX < INTERFACE_DATA.Render.offset.x + INTERFACE_DATA.Render.area.x) { + else if(mouse_x >= INTERFACE_DATA.Render.pool_offset && mouse_x < INTERFACE_DATA.Render.offset.x + INTERFACE_DATA.Render.area.x) { let basis_x = INTERFACE_DATA.Render.pool_offset + halfradius; let basis_y = INTERFACE_DATA.Render.offset.y + (3 * apothem); - let x = (event.offsetX - basis_x) / grid_offset_x; + let x = (mouse_x - basis_x) / grid_offset_x; let y = (event.offsetY - basis_y) / apothem; let kx = Math.floor(x);