GrassClipper/resources/js/windowDrag.js

25 lines
833 B
JavaScript
Raw Normal View History

2022-04-21 01:16:36 +00:00
// 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
2022-05-03 05:44:57 +00:00
let dragging = false, ratio = 1, posX, posY
let draggable
2022-04-21 01:16:36 +00:00
document.addEventListener('DOMContentLoaded', async () => {
2022-05-03 05:48:03 +00:00
draggable = document.getElementById('controlBar')
2022-04-21 01:16:36 +00:00
2022-05-03 05:48:03 +00:00
// Listen to hovers
draggable.onmousedown = function (e) {
ratio = window.devicePixelRatio
2022-05-03 05:48:03 +00:00
posX = e.pageX * ratio, posY = e.pageY * ratio
dragging = true
}
2022-04-21 01:16:36 +00:00
2022-05-03 05:48:03 +00:00
// Patch for monitors with scaling enabled, allows them to detach from the titlebar anywhere
window.onmouseup = function (e) {
dragging = false
}
2022-04-21 01:16:36 +00:00
2022-05-03 05:48:03 +00:00
document.onmousemove = function (e) {
if (dragging) Neutralino.window.move(e.screenX * ratio - posX, e.screenY * ratio - posY)
}
2022-04-21 01:16:36 +00:00
})