🎉 Phase 13.1.c — curseur souris : conversion HID→pixel
Bug B.1 13.1.b résolu : ps2d sous Redox+QEMU délivre les coords absolues du pointer dans 0..65535 (16-bit virtuel HID), pas en pixels écran. Notre PointerMotion faisait une assignation directe → clamp permanent à (width-1, height-1) → cursor coincé bas-droite, hit_test toujours None. Fix : conversion fixed-point x*screen_w/65536 (algo orbital upstream, cf orbital/src/scheme.rs:1583). Le clamp_cursor de 13.1.b reste comme garde-fou pour valeurs hors-spec. Validation runtime : curseur suit fidèlement la souris dans toute l'aire écran 1280×800, clics en (370,239), (522,303), (746,175), (1260,142), etc. Plus jamais de (1279,799) systématique. Bonus DX : filtre tracing par défaut « info,cursor=debug » pour éviter d'avoir à taper RUST_LOG complexe dans la fenêtre QEMU graphique (pas de copier-coller). Instrumentation `target="cursor"` laissée en place pour debug futur des événements pointer. Bug B.2 (page fault ion) non traité, reste à reporter upstream. Leyoda 2026 – GPLv3
This commit is contained in:
parent
18391c85f7
commit
58ef6a85c2
3 changed files with 188 additions and 3 deletions
|
|
@ -95,7 +95,13 @@ impl<'a> MakeWriter<'a> for TeeWriter {
|
|||
}
|
||||
|
||||
fn init_tracing() {
|
||||
let filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info"));
|
||||
// Phase 13.1.c : par défaut, info + target=cursor en debug. Le target
|
||||
// `cursor` est utilisé par les traces ABS/REL du frontend (cf
|
||||
// redox-wl-wayland-frontend). Pratique sous QEMU graphique où taper
|
||||
// un RUST_LOG complexe est pénible (pas de copier-coller). Override
|
||||
// toujours possible via RUST_LOG=… au lancement.
|
||||
let filter = EnvFilter::try_from_default_env()
|
||||
.unwrap_or_else(|_| EnvFilter::new("info,cursor=debug"));
|
||||
tracing_subscriber::fmt()
|
||||
.with_env_filter(filter)
|
||||
.with_writer(TeeWriter::new())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue