diff --git a/frontend/src/Components/LineEditor.svelte b/frontend/src/Components/LineEditor.svelte
index bc8171b..1207236 100644
--- a/frontend/src/Components/LineEditor.svelte
+++ b/frontend/src/Components/LineEditor.svelte
@@ -15,6 +15,8 @@
let editing = $state(simple);
let editValue = value;
let start = 0;
+ let x = 0;
+ let y = 0;
async function applyEdit(){
let success = await onSet(editValue);
@@ -22,22 +24,14 @@
editing=false;
}
- function resetEdit(){
- editing = false;
- editValue = value;
- }
-
- function startEdit(){
- activeField.update((n) => n+1);
- editing = editable;
- }
-
- function typed(ev){
- if (ev.keyCode == 13) applyEdit();
- if (ev.keyCode == 27) resetEdit();
+ function ignore(evt){
+ evt.preventDefault();
+ evt.stopPropagation();
+ return false;
}
- function measured(evt,duration){
+ function measured(evt,duration,d){
+ if (d > 100) return;
if (duration < 500){
onclick(evt);
} else {
@@ -46,29 +40,46 @@
}
function oncontextmenu(evt){
- evt.preventDefault();
- evt.stopPropagation();
- return false;
+ startEdit();
+ return ignore(evt);
}
function onmousedown(evt){
- evt.preventDefault();
start = evt.timeStamp;
+ return ignore(evt);
}
function onmouseup(evt){
- evt.preventDefault();
- measured(evt, evt.timeStamp - start);
+ measured(evt, evt.timeStamp - start,0);
+ return ignore(evt);
}
function ontouchstart(evt){
- evt.preventDefault();
start = evt.timeStamp;
+ x = evt.touches[0].clientX;
+ y = evt.touches[0].clientY;
+ return ignore(evt);
}
function ontouchend(evt){
- evt.preventDefault();
- measured(evt, evt.timeStamp - start);
+ let d = Math.abs(x - evt.changedTouches[0].clientX) + Math.abs(y - evt.changedTouches[0].clientY);
+ measured(evt, evt.timeStamp - start, d);
+ return ignore(evt);
+ }
+
+ function resetEdit(){
+ editing = false;
+ editValue = value;
+ }
+
+ function startEdit(){
+ activeField.update((n) => n+1);
+ editing = editable;
+ }
+
+ function typed(ev){
+ if (ev.keyCode == 13) applyEdit();
+ if (ev.keyCode == 27) resetEdit();
}
activeField.subscribe((val) => resetEdit());
@@ -92,5 +103,5 @@
{#if editable && editing}
{:else}
-{value}
+{value}
{/if}