windows pos & size in prefs

This commit is contained in:
STEINNI
2025-10-08 12:51:01 +00:00
parent db3d10539a
commit 93de6045e3
5 changed files with 78 additions and 47 deletions
+26 -7
View File
@@ -96,14 +96,14 @@ class EICDomContent extends View {
let mouseX, mouseY, offsetX = 0, offsetY = 0;
// mouse button down over the element
element.querySelector('header h1').addEventListener('mousedown', onMouseDown);
element.querySelector('header h1').addEventListener('mousedown', onMouseDown.bind(this));
/**
* Listens to `mousedown` event.
*
* @param {Object} event - The event.
*/
function onMouseDown(event) {
function onMouseDown(event) {
event.stopPropagation();
event.preventDefault();
@@ -113,9 +113,9 @@ class EICDomContent extends View {
offsetY = element.getBoundingClientRect().y;
document.addEventListener('mousemove', onMouseMove);
element.addEventListener('mouseup', onMouseUp.bind(this));
}
element.addEventListener('mouseup', onMouseUp);
/**
* Listens to `mouseup` event.
@@ -126,6 +126,14 @@ class EICDomContent extends View {
offsetX = parseInt(element.style.left) || 0;
offsetY = parseInt(element.style.top) || 0;
document.removeEventListener('mousemove', onMouseMove);
element.removeEventListener('mouseup', onMouseUp);
if(this.windowPrefsId){
const box = element.getBoundingClientRect()
app.User.setPreference(`windows.${this.windowPrefsId}`, {
x: box.x,
y: box.y,
});
}
}
/**
@@ -149,7 +157,7 @@ class EICDomContent extends View {
resizable(element, onResize) {
let mouseX, mouseY, offset = 0, offsetY = 0, grab = '';
element.querySelectorAll(':scope > .handle').forEach(handle => handle.addEventListener('mousedown', onMouseDown))
element.querySelectorAll(':scope > .handle').forEach(handle => handle.addEventListener('mousedown', onMouseDown.bind(this)))
element.querySelector('section').addEventListener('mousedown', onBlockMouseDown);
@@ -159,7 +167,7 @@ class EICDomContent extends View {
*
* @param {Object} event - mouse event.
*/
function onMouseDown(event) {
function onMouseDown(event) {
event.stopPropagation();
event.preventDefault();
@@ -175,16 +183,26 @@ class EICDomContent extends View {
offset = element.getBoundingClientRect();
document.addEventListener('mousemove', onMouseMove);
element.addEventListener('mouseup', onMouseUp.bind(this));
}
element.addEventListener('mouseup', onMouseUp);
/**
* mouseup event listener
*
* @param {Object} event - The event.
*/
function onMouseUp(event) { document.removeEventListener('mousemove', onMouseMove); }
function onMouseUp(event) {
document.removeEventListener('mousemove', onMouseMove);
element.removeEventListener('mouseup', onMouseUp);
if(this.windowPrefsId){
const box = element.getBoundingClientRect()
app.User.setPreference(`windows.${this.windowPrefsId}`, {
w: box.width,
h: box.height,
});
}
}
/**
* Listens to `mousemove` event.
@@ -237,6 +255,7 @@ class EICDomContent extends View {
let device = limits.find(item => item.min < bounds.width);
this.el.setAttribute('device', device ? device.name: limits[0].name);
}
}
app.registerClass('EICDomContent', EICDomContent);