tangled
alpha
login
or
join now
me.webbeef.org
/
browser.html
18
fork
atom
Rewild Your Web
web
browser
dweb
18
fork
atom
overview
issues
1
pulls
pipelines
ui: replace mouse events by pointer events
webbeef.tngl.sh
3 weeks ago
ea9878ad
4fbe2285
+32
-27
4 changed files
expand all
collapse all
unified
split
ui
system
color_picker.js
index.js
layout_manager.js
search.js
+20
-15
ui/system/color_picker.js
···
207
207
}
208
208
209
209
// Event handlers for the picker areas
210
210
-
handleSLMouseDown(e) {
210
210
+
handleSLPointerDown(e) {
211
211
this.dragging = "sl";
212
212
this.updateSL(e);
213
213
-
document.addEventListener("mousemove", this.handleMouseMove);
214
214
-
document.addEventListener("mouseup", this.handleMouseUp);
213
213
+
document.addEventListener("pointermove", this.handlePointerMove);
214
214
+
document.addEventListener("pointerup", this.handlePointerUp);
215
215
}
216
216
217
217
-
handleHueMouseDown(e) {
217
217
+
handleHuePointerDown(e) {
218
218
this.dragging = "hue";
219
219
this.updateHue(e);
220
220
-
document.addEventListener("mousemove", this.handleMouseMove);
221
221
-
document.addEventListener("mouseup", this.handleMouseUp);
220
220
+
document.addEventListener("pointermove", this.handlePointerMove);
221
221
+
document.addEventListener("pointerup", this.handlePointerUp);
222
222
}
223
223
224
224
-
handleMouseMove = (e) => {
225
225
-
if (this.dragging === "sl") this.updateSL(e);
226
226
-
else if (this.dragging === "hue") this.updateHue(e);
224
224
+
handlePointerMove = (e) => {
225
225
+
if (this.dragging === "sl") {
226
226
+
this.updateSL(e);
227
227
+
} else if (this.dragging === "hue") {
228
228
+
this.updateHue(e);
229
229
+
}
227
230
};
228
231
229
229
-
handleMouseUp = () => {
232
232
+
handlePointerUp = () => {
230
233
this.dragging = null;
231
231
-
document.removeEventListener("mousemove", this.handleMouseMove);
232
232
-
document.removeEventListener("mouseup", this.handleMouseUp);
234
234
+
document.removeEventListener("pointermove", this.handlePointerMove);
235
235
+
document.removeEventListener("pointerup", this.handlePointerUp);
233
236
};
234
237
235
238
updateSL(e) {
···
272
275
273
276
handleHexInput(e) {
274
277
let hex = e.target.value;
275
275
-
if (!hex.startsWith("#")) hex = "#" + hex;
278
278
+
if (!hex.startsWith("#")) {
279
279
+
hex = "#" + hex;
280
280
+
}
276
281
if (/^#[0-9a-fA-F]{6}$/.test(hex)) {
277
282
const rgb = this.hexToRgb(hex);
278
283
if (rgb) {
···
320
325
<div
321
326
class="sl-area"
322
327
style="background: linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, ${hueColor});"
323
323
-
@mousedown=${this.handleSLMouseDown}
328
328
+
@pointerdown=${this.handleSLPointerDown}
324
329
>
325
330
<div
326
331
class="sl-cursor"
···
329
334
</div>
330
335
331
336
<!-- Hue bar -->
332
332
-
<div class="hue-bar" @mousedown=${this.handleHueMouseDown}>
337
337
+
<div class="hue-bar" @pointerdown=${this.handleHuePointerDown}>
333
338
<div
334
339
class="hue-cursor"
335
340
style="top: ${(this.hue / 360) * 100}%;"
+3
-3
ui/system/index.js
···
723
723
// Desktop-only header handlers
724
724
const headerSpan = document.querySelector("header span");
725
725
if (headerSpan) {
726
726
-
headerSpan.onmousedown = (e) => {
726
726
+
headerSpan.onpointerdown = (e) => {
727
727
e.preventDefault();
728
728
navigator.embedder.startWindowDrag();
729
729
};
···
731
731
732
732
const headerResize = document.querySelector("header .resize");
733
733
if (headerResize) {
734
734
-
headerResize.onmousedown = (e) => {
734
734
+
headerResize.onpointerdown = (e) => {
735
735
e.preventDefault();
736
736
navigator.embedder.startWindowResize();
737
737
};
···
739
739
740
740
const headerClose = document.querySelector("header .close");
741
741
if (headerClose) {
742
742
-
headerClose.onmousedown = (e) => {
742
742
+
headerClose.onpointerdown = (e) => {
743
743
e.preventDefault();
744
744
navigator.embedder.closeCurrentOSWindow();
745
745
};
+8
-8
ui/system/layout_manager.js
···
677
677
handleEl.style.height = "0.5em";
678
678
}
679
679
680
680
-
handleEl.addEventListener("mousedown", (e) => {
680
680
+
handleEl.addEventListener("pointerdown", (event) => {
681
681
e.preventDefault();
682
682
-
this.startResize(e, handle.splitNode, handle.direction, panelIndex);
682
682
+
this.startResize(event, handle.splitNode, handle.direction, panelIndex);
683
683
});
684
684
685
685
panel.element.appendChild(handleEl);
···
741
741
// Disable pointer events on all webviews during resize
742
742
document.body.classList.add("resizing");
743
743
744
744
-
const onMouseMove = (e) => {
744
744
+
const onPointerMove = (e) => {
745
745
e.preventDefault();
746
746
e.stopPropagation();
747
747
···
755
755
this.applyPanelLayout(panelIndex);
756
756
};
757
757
758
758
-
const onMouseUp = (e) => {
758
758
+
const onPointerUp = (e) => {
759
759
e.preventDefault();
760
760
e.stopPropagation();
761
761
762
762
-
document.body.removeEventListener("mousemove", onMouseMove, true);
763
763
-
document.body.removeEventListener("mouseup", onMouseUp, true);
762
762
+
document.body.removeEventListener("pointermove", onPointerMove, true);
763
763
+
document.body.removeEventListener("pointerup", onPointerUp, true);
764
764
document.body.style.cursor = "";
765
765
document.body.style.userSelect = "";
766
766
···
769
769
};
770
770
771
771
// Use capture phase on body to intercept events before they reach webviews
772
772
-
document.body.addEventListener("mousemove", onMouseMove, true);
773
773
-
document.body.addEventListener("mouseup", onMouseUp, true);
772
772
+
document.body.addEventListener("pointermove", onPointerMove, true);
773
773
+
document.body.addEventListener("pointerup", onPointerUp, true);
774
774
document.body.style.cursor =
775
775
direction === "horizontal" ? "col-resize" : "row-resize";
776
776
document.body.style.userSelect = "none";
+1
-1
ui/system/search.js
···
179
179
}
180
180
});
181
181
182
182
-
document.querySelector("h1").addEventListener("mousedown", () => {
182
182
+
document.querySelector("h1").addEventListener("pointerdown", () => {
183
183
navigator.embedder.startWindowDrag();
184
184
});
185
185