mirror of
https://github.com/Matysh/houseplan-card
synced 2026-08-01 00:48:29 +00:00
The fit overlay is actually touchable
The devlayer is pointer-events: none and every child opts back in; the overlay never did, so every real click fell through to the plan while the smoke's synthetic dispatch — which skips hit-testing — kept passing. The overlay now opts in, the corner handles grew to finger size, and the smoke performs REAL elementFromPoint hit-tests through the shadow root so an untouchable overlay can never pass again.
This commit is contained in:
@@ -4637,7 +4637,7 @@ class HouseplanCard extends LitElement {
|
||||
})();
|
||||
const x0 = Math.min(...xs), x1 = Math.max(...xs);
|
||||
const y0 = Math.min(...ys), y1 = Math.max(...ys);
|
||||
const r = view.w * 0.014;
|
||||
const r = view.w * 0.022; // finger-sized: these are grabbed on tablets
|
||||
for (const [hx, hy, ox2, oy2] of [[x0, y0, x1, y1], [x1, y0, x0, y1], [x1, y1, x0, y0], [x0, y1, x1, y0]] as number[][]) {
|
||||
const fixed = inv(ox2, oy2);
|
||||
handles.push(svg`<circle class="vacfithandle" data-corner="${fixed[0] + ',' + fixed[1]}"
|
||||
|
||||
@@ -1315,6 +1315,11 @@ export const cardStyles = css`
|
||||
overflow: visible;
|
||||
touch-action: none;
|
||||
cursor: grab;
|
||||
/* the devlayer is pointer-events: none and every child opts back in —
|
||||
without this line real clicks flew straight through the overlay
|
||||
(owner: «уголки не кликабельны»; synthetic smoke events bypass
|
||||
hit-testing, which is why they lied) */
|
||||
pointer-events: auto;
|
||||
}
|
||||
.vacfit:active { cursor: grabbing; }
|
||||
.vacfit polygon {
|
||||
|
||||
Reference in New Issue
Block a user