Repository navigation
Open
Labels
status:needs-reviewAwaiting product review by the repository ownerAwaiting product review by the repository ownertype:bugBug fixBug fix
Description
Problema
Con el detalle abierto por hover y sin anclar, una salida tardía de la otra superficie (la tira o el detalle) puede cerrar el panel aunque el puntero siga encima.
El modelo de presencia de #275 (src/lib/hover-presence.ts) solo ignora la salida de la otra superficie si llega a menos de 250 ms de la entrada anterior. Esos 250 ms se miden cuando el frente recibe el evento, no cuando ocurrió. Si el leave llega con retraso, por ejemplo más de 250 ms después de la última evidencia de la tira, se toma como autoridad: la presencia pasa a outside y se arma el cierre.
Evidencia
- Está declarado como residual en fix(linux): el detalle sin anclar se cierra al salir del puntero en Wayland (#264) #275 (S13/T6 de
odd/tasks/264-hover-close-native.md): "con la presencia enwidget, una salida del detalle que llegue más de 250 ms después de la última evidencia de la tira cerraría el panel con el puntero encima". - Es alcanzable en macOS por el
mouseleavetardío de bug(macOS): el popup de detalle permanece visible tras dejar el hover (incluso moviendo el widget) #154. Además, en macOS una muestra que sigue dentro del detalle no desarma el temporizador, porquesrc/lib/detail-presence.tsignora las muestras repetidas de "dentro". - En plataformas que solo usan el DOM puede pasar lo mismo en la otra dirección.
- No está validado en macOS ni en Windows: fix(linux): el detalle sin anclar se cierra al salir del puntero en Wayland (#264) #275 no pudo probarlo.
Propuesta
- Reproducirlo en macOS (y en Windows si aparece) con una traza de los tiempos de entrada y salida de cada superficie.
- Decidir la presencia con una marca de tiempo del evento de origen, cuando la plataforma la dé, en vez de la hora de recepción. Otra opción: que una evidencia posterior de "dentro" (muestra nativa o entrada) cancele un cierre ya armado.
- Valorar si conviene unificar la detección de salida con eventos nativos en todas las plataformas, como se recomendó en fix(linux): el detalle sin anclar se cierra al salir del puntero en Wayland (#264) #275.
Criterios de aceptación
- Una salida tardía de una superficie no cierra el detalle si el puntero sigue sobre la tira o el detalle.
- El cierre por hover sin anclar sigue ocurriendo unos 280 ms después de salir de las dos superficies (S9 de bug(linux/wayland): el detalle a veces no se cierra al sacar el puntero en Wayland nativo #264).
- El anclaje (feat(ux): abrir y cerrar el detalle con clic directo sobre el orbe #170/feat(widget): el clic sobre el orbe ancla el panel de detalle (#170) #223) no cambia.
- Hay un test del modelo de presencia que reproduce la salida tardía.
Relacionadas: #264, #275, #154.
@DonatoSilva, si te interesa tomarla como continuación de #275, avisá en el hilo.
Metadata
Metadata
Assignees
Labels
status:needs-reviewAwaiting product review by the repository ownerAwaiting product review by the repository ownertype:bugBug fixBug fix
Activity