Fix drag when over textbox button.

This commit is contained in:
Krafpy
2023-01-07 01:35:39 +01:00
parent 01b3baa906
commit 2aee15da27
2 changed files with 23 additions and 0 deletions

View File

@@ -25,7 +25,14 @@ export class DraggableTextbox {
};
const copyBtn = div.getElementsByClassName("draggable-copy-btn")[0];
copyBtn.onclick = () => navigator.clipboard.writeText(content);
let mouseOverBtn = false;
closeBtn.onmouseover = () => mouseOverBtn = true;
copyBtn.onmouseover = () => mouseOverBtn = true;
closeBtn.onmouseleave = () => mouseOverBtn = false;
copyBtn.onmouseleave = () => mouseOverBtn = false;
header.onmousedown = (e) => {
if (mouseOverBtn)
return;
e = e || window.event;
e.preventDefault();
let x = e.clientX;
@@ -37,6 +44,8 @@ export class DraggableTextbox {
};
const clamp = (x, a, b) => x < a ? a : x > b ? b : x;
document.onmouseup = () => {
if (mouseOverBtn)
return;
left = clamp(left, 0, window.innerWidth - header.offsetWidth);
top = clamp(top, 0, window.innerHeight - header.offsetHeight);
setPos();
@@ -44,6 +53,8 @@ export class DraggableTextbox {
document.onmousemove = null;
};
document.onmousemove = (e) => {
if (mouseOverBtn)
return;
e = e || window.event;
e.preventDefault();
let dx = x - e.clientX;

View File

@@ -34,7 +34,15 @@ export class DraggableTextbox {
const copyBtn = div.getElementsByClassName("draggable-copy-btn")[0] as HTMLButtonElement;
copyBtn.onclick = () => navigator.clipboard.writeText(content);
let mouseOverBtn = false;
closeBtn.onmouseover = () => mouseOverBtn = true;
copyBtn.onmouseover = () => mouseOverBtn = true;
closeBtn.onmouseleave = () => mouseOverBtn = false;
copyBtn.onmouseleave = () => mouseOverBtn = false;
header.onmousedown = (e: MouseEvent) => {
if(mouseOverBtn) return;
e = e || window.event;
e.preventDefault();
@@ -50,6 +58,8 @@ export class DraggableTextbox {
const clamp = (x:number, a:number, b:number) => x < a ? a : x > b ? b : x;
document.onmouseup = () => {
if(mouseOverBtn) return;
left = clamp(left, 0, window.innerWidth - header.offsetWidth);
top = clamp(top, 0, window.innerHeight - header.offsetHeight);
setPos();
@@ -59,6 +69,8 @@ export class DraggableTextbox {
};
document.onmousemove = (e: MouseEvent) => {
if(mouseOverBtn) return;
e = e || window.event;
e.preventDefault();