diff --git a/app/templates/library.html b/app/templates/library.html index 8cbe4dd..858f689 100644 --- a/app/templates/library.html +++ b/app/templates/library.html @@ -1280,20 +1280,21 @@ function libraryPage() { var handle = document.getElementById('lib-peek-resize-handle'); if (!panel || !handle) return; var startX, startWidth, dragging = false; - handle.addEventListener('mousedown', function(e) { + handle.addEventListener('pointerdown', function(e) { e.preventDefault(); + handle.setPointerCapture(e.pointerId); startX = e.clientX; startWidth = panel.offsetWidth; dragging = true; document.body.style.userSelect = 'none'; }); - document.addEventListener('mousemove', function(e) { + handle.addEventListener('pointermove', function(e) { if (!dragging) return; var deltaX = startX - e.clientX; var newWidth = Math.max(300, Math.min(window.innerWidth * 0.9, startWidth + deltaX)); panel.style.width = newWidth + 'px'; }); - document.addEventListener('mouseup', function(e) { + handle.addEventListener('pointerup', function(e) { if (!dragging) return; document.body.style.userSelect = ''; var moved = Math.abs(e.clientX - startX); @@ -1303,6 +1304,7 @@ function libraryPage() { } dragging = false; try { localStorage.setItem('fd_peek_width', panel.style.width); } catch(ex) {} + handle.releasePointerCapture(e.pointerId); }); try { var saved = localStorage.getItem('fd_peek_width'); diff --git a/app/templates/local_workspace.html b/app/templates/local_workspace.html index 6e9f90b..dca7247 100644 --- a/app/templates/local_workspace.html +++ b/app/templates/local_workspace.html @@ -639,20 +639,21 @@ window._wsInitData = (function() { var handle = document.getElementById('ws-preview-resize-handle'); if (!panel || !handle) return; var startX, startWidth, dragging = false; - handle.addEventListener('mousedown', function(e) { + handle.addEventListener('pointerdown', function(e) { e.preventDefault(); + handle.setPointerCapture(e.pointerId); startX = e.clientX; startWidth = panel.offsetWidth; dragging = true; document.body.style.userSelect = 'none'; }); - document.addEventListener('mousemove', function(e) { + handle.addEventListener('pointermove', function(e) { if (!dragging) return; var deltaX = startX - e.clientX; var newWidth = Math.max(300, Math.min(window.innerWidth * 0.9, startWidth + deltaX)); panel.style.width = newWidth + 'px'; }); - document.addEventListener('mouseup', function(e) { + handle.addEventListener('pointerup', function(e) { if (!dragging) return; document.body.style.userSelect = ''; var moved = Math.abs(e.clientX - startX); @@ -661,6 +662,7 @@ window._wsInitData = (function() { } dragging = false; try { localStorage.setItem('fd_peek_width', panel.style.width); } catch(ex) {} + handle.releasePointerCapture(e.pointerId); }); try { var saved = localStorage.getItem('fd_peek_width');