diff --git a/resources/js/windowDrag.js b/resources/js/windowDrag.js index 811ca68..b9aa3f5 100644 --- a/resources/js/windowDrag.js +++ b/resources/js/windowDrag.js @@ -1,22 +1,25 @@ // https://stackoverflow.com/questions/67971689/positioning-the-borderless-window-in-neutralino-js // had to use this since the in-built function breaks the close and minimize buttons -let dragging = false, posX, posY; +let dragging = false, ratio = 1, posX, posY; let draggable; -document.addEventListener('DOMContentLoaded', () => { +document.addEventListener('DOMContentLoaded', async () => { draggable = document.getElementById('controlBar'); // Listen to hovers draggable.onmousedown = function (e) { - posX = e.pageX, posY = e.pageY; + ratio = window.devicePixelRatio + + posX = e.pageX * ratio, posY = e.pageY * ratio; dragging = true; } - draggable.onmouseup = function (e) { + // Patch for monitors with scaling enabled, allows them to detach from the titlebar anywhere + window.onmouseup = function (e) { dragging = false; } document.onmousemove = function (e) { - if (dragging) Neutralino.window.move(e.screenX - posX, e.screenY - posY); + if (dragging) Neutralino.window.move(e.screenX * ratio - posX, e.screenY * ratio - posY); } }) \ No newline at end of file