Repository navigation
fix(widget): el detalle no se reabre solo al soltar un orbe reordenado (#222) - #240
Merged
egdev6 merged 2 commits intoNov 5, 2026
Merged
Conversation
egdev6#222) Tras reordenar, el navegador emite el `mouseenter` sobre el orbe soltado en un instante que no controlamos (medido entre 0,2 s y 2,3 s después de soltar), así que la guarda de 400 ms no basta: si la entrada llega después, el hover reabre el panel sin clic. Se añade una retención pura (`ReorderHold`): al soltar un reordenado con el puntero dentro de la ventana el hover del puntero no abre el panel, y solo la libera el `mouseleave` real de `.dock`. Pasar a otro orbe no la libera. - `ProviderGauge` recibe la prop opcional `onPointerEnter`, usada solo por `mouseenter`: el foco de teclado y el clic siguen por `onHover`. - Si se suelta fuera de la ventana no se retiene, porque nada la liberaría. - La guarda de 400 ms se mantiene para el clic que llega tras soltar. Refs egdev6#222
Solo cambia la línea de hashes del árbol de src/: el cambio no añade ni modifica textos de interfaz.
egdev6
approved these changes
Nov 5, 2026
1 task done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related issue / Issue relacionada
Issue: Fixes #222
ODD:
odd/tasks/222-reorder-reopen.md— alcance aprobado por el mantenedor en el hilo de la issue.Scope / Alcance
Tras reordenar un orbe, el panel de detalle no se reabre por hover hasta que el puntero salga de la tira y vuelva a entrar (opción 1 de la issue). El clic explícito y el foco de teclado se mantienen.
mouseentersobre el orbe soltado en un instante que no controlamos (entre 0,2 s y 2,3 s después de soltar). Con la guarda de 400 ms, si la entrada llega después, el hover reabre el panel sin clic.ReorderHold, una retención pura ensrc/lib/anchor-panel.ts. Se activa al soltar un reordenado con el puntero dentro de la ventana y solo la libera elmouseleavede.dock. Pasar a otro orbe no la libera.ProviderGaugerecibe la prop opcionalonPointerEnter, usada solo pormouseenter; el foco y el clic siguen poronHover.openFor,anchorOn,PanelStatey la guarda de 400 ms (que sigue frenando el clic posterior a soltar) no cambian.createPanelCoordinatorcon los temporizadores deWidget.tsxy no se toca la ventana del widget ni su tamaño.Dos commits: el arreglo con sus tests y el ODD, y el inventario i18n regenerado (solo cambia la línea de hashes del árbol de
src/).Coordination / Coordinación
Contributor / Contribuidor: @DonatoSilva
Claim or agreement evidence / Evidencia de asignación o acuerdo: asignación en la issue (#222 (comment)) y aprobación de la opción 1 y de las tres condiciones de implementación (#222 (comment)).
Acceptance and validation / Aceptación y validación
mouseleavede.dock; regla como función pura con su test.GDK_BACKEND=x11): 2 de 4 reordenamientos reabrieron el panel sin clic (+1 s y +2,3 s tras soltar); en los otros llegó a ~0,2 s y la guarda lo frenó. En ningún caso hubofocusentre soltar y abrir.npm test: vitest 68 archivos / 912 tests;node --test298; 0 fallos.npm run typecheckynpm run build: sin errores.node scripts/i18n-inventory.mjs --check: correcto.mouseenter, foco y clic deProviderGaugesin la prop nueva, en 3 sistemas, con y sin:focus-visibley con y sinonClick, más el HTML renderizado: salida idéntica a la base.Widget.tsxno tiene test unitario (el repo no tiene entorno de DOM).cargo test: no se tocó Rust.An open PR does not mean integration. Release, secrets and signing operations require separate authorization.
Una PR abierta no implica integración. Release, secretos y firma requieren autorización separada.