feat(canvas): contrato ownsPointer — tocar una pantalla tactil en Run no la arrastra
La whitelist de tags que poseen el puntero durante la simulacion gana una
salida generica regla-6a: el elemento declara `get ownsPointer() { return
true }` y el wrapper no inicia el drag mientras corre. El cristal del Round
Display pintaba el punto verde Y arrastraba el shield por el canvas a la vez.
This commit is contained in:
parent
98df5134cb
commit
3ca8bf0e6e
|
|
@ -480,7 +480,13 @@ export const DynamicComponent: React.FC<DynamicComponentProps> = ({
|
||||||
tag === 'wokwi-analog-joystick' ||
|
tag === 'wokwi-analog-joystick' ||
|
||||||
tag === 'wokwi-ky-040' ||
|
tag === 'wokwi-ky-040' ||
|
||||||
tag === 'wokwi-membrane-keypad' ||
|
tag === 'wokwi-membrane-keypad' ||
|
||||||
tag === 'wokwi-rotary-dialer');
|
tag === 'wokwi-rotary-dialer' ||
|
||||||
|
// Rule-6a escape hatch: a (possibly private-overlay) element whose
|
||||||
|
// surface IS the interaction — a touch screen — declares it via a
|
||||||
|
// property instead of this list growing pro tag names. While the
|
||||||
|
// sim runs, touching it must touch, not drag: the Round Display's
|
||||||
|
// glass was painting the green dot AND dragging the shield around.
|
||||||
|
(target as { ownsPointer?: boolean }).ownsPointer === true);
|
||||||
if (ownsPointer) {
|
if (ownsPointer) {
|
||||||
// Let the wokwi component own this pointerdown.
|
// Let the wokwi component own this pointerdown.
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue