From 93dcea8b219188e7eec52d95bd8c2ff58d6f45c3 Mon Sep 17 00:00:00 2001 From: cyber-dream Date: Tue, 2 May 2023 13:38:28 +0300 Subject: [PATCH] Fix bringToFront function --- resources/wde.js | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/resources/wde.js b/resources/wde.js index fc757a7..bd05eb5 100644 --- a/resources/wde.js +++ b/resources/wde.js @@ -210,29 +210,25 @@ var getJSON = function(url, callback) { }; class WindowsCompositor{ - windowLayer = undefined - movingElement = null + static windowsLayer - //TODO refactor this to dynamic add/remove listeners constructor(){ this.windowLayer = document.body.querySelector('#windows-layer') + WindowsCompositor.windowsLayer = document.body.querySelector('#windows-layer') if (!WebDesktopEnvironment.isMobile) { let startDrag = function(event) { + let window = event.target.closest('.WindowFrame') + WindowsCompositor.bringWindowToFront(window) let targetClasses = event.target.className.split(' ') if (targetClasses[targetClasses.length - 1] != 'DragArea'){ return } - // if (event.target.event.target.className != "DragArea"){} + let xPosInit = event.offsetX let yPosInit = event.offsetY - let window = event.target.closest('.WindowFrame') let dragWindow = function(event){ - // console.log(window) - // console.log(event.clientX) - // console.log(event.clientX - xPosInit, event.clientY - yPosInit) window.style.left = `${event.clientX - xPosInit}px` window.style.top = `${event.clientY - yPosInit}px` - // WindowsCompositor.dragElement(window,event.clientX - xPosInit, event.clientY - yPosInit) } let stopDrag = function(){ removeEventListener('mousemove', dragWindow) @@ -241,18 +237,19 @@ class WindowsCompositor{ addEventListener('mousemove', dragWindow) addEventListener('mouseup', stopDrag) - // console.log(event) } - this.windowLayer.addEventListener('mousedown', startDrag) + WindowsCompositor.windowsLayer.addEventListener('mousedown', startDrag) } } /** * @param {HTMLElement} window */ - bringWindowToFront(window){ //FIXME - this.windowLayer.insertBefore(this.windowLayer.lastChild, window) + static bringWindowToFront(window){ //FIXME + if (window != WindowsCompositor.windowsLayer.lastChild ){ + WindowsCompositor.windowsLayer.insertBefore(WindowsCompositor.windowsLayer.lastChild, window) + } }