redox-wayland-compositor/docs
Votre Nom 1689b93d9b 🎉 Phase 7.9 — polish : min/max size + Activated state + throttling
3 livrables qui polissent le compositor pour des toolkits Wayland
réels.

Frontend additions :

1. set_min_size / set_max_size
   - XdgToplevelData : min_size/max_size: Mutex<(i32, i32)>
   - Handlers SetMinSize/SetMaxSize stockent
   - apply_interactive_drag(Resize) clamp new_w/new_h aux contraintes
     après compute_resize_geom

2. Activated state au focus change
   - WaylandFrontend.toplevels_by_id: HashMap<SurfaceId, XdgToplevel>
     peuplé à xdg_surface.GetToplevel, nettoyé à wl_surface.Destroy
     et garbage_collect_dead_clients
   - Méthode send_focus_configure(toplevel, sid, states) : envoie
     configure(w, h, states) avec taille du buffer courant +
     xdg_surface.configure(serial) + update last_serial
   - set_focus envoie configure([Activated]) à la nouvelle focused
     surface et configure([]) à l'ancienne

3. Throttling configure pendant resize
   - InteractiveDrag : last_configure_size + last_configure_at
   - apply_interactive_drag(Resize) skip l'envoi si taille inchangée
     OU elapsed < 16ms (max ~60fps), mais applique quand même le
     delta de position pour que la fenêtre suive le curseur

Test client : set_min_size(150, 80) + set_max_size(600, 400)

Validation runtime :
- [frontend] xdg_toplevel.set_min_size(150, 80) + set_max_size logs
- focus change → configure(320x200) reçu côté client = Activated OK
- Configure pendant resize : un seul w=150 h=80 envoyé pour les 4
  phases de cursor (clamp + throttling = même résultat → skip)

Capture phase7-9-2-clamp-min.png montre la fenêtre clampée à 150x80
malgré des cursor moves qui auraient produit des tailles négatives.

Bilan phase 7 (1-9) close. Compositor 7.x suffisamment poli pour
toolkits Wayland réels : xdg-shell complet, focus avec Activated,
input filtré, cursor, move/resize avec contraintes, robustesse,
multi-clients avec cleanup.

Prochain jalon : port COSMIC (phase 13 plan-directeur, réordonnée
avant GPU).

Doc complète : docs/phase7-9-polish.md

Leyoda 2026 – GPLv3
2026-05-13 20:54:33 +02:00
..
existing-redox-gui.md Initial commit: phases 1-3 du portage Wayland Rust pour Redox OS 2026-05-08 17:41:55 +02:00
phase4-display-backend.md 🎉 Phase 4 vraie validée visuellement : pixels custom plein écran 2026-05-09 10:46:20 +02:00
phase4-victory-1280x800.png 🎉 Phase 4 vraie validée visuellement : pixels custom plein écran 2026-05-09 10:46:20 +02:00
phase5-blue-screen-with-input.png 🎉 Phase 5 — input backend Redox validé runtime 2026-05-09 11:22:54 +02:00
phase5-input-backend.md 🎉 Phase 5 — input backend Redox validé runtime 2026-05-09 11:22:54 +02:00
phase6-3-blue-top.png 🎉 Phase 6.3 — display + input + compositor-core intégrés runtime 2026-05-09 12:20:04 +02:00
phase6-3-default-z.png 🎉 Phase 6.3 — display + input + compositor-core intégrés runtime 2026-05-09 12:20:04 +02:00
phase6-3-green-top.png 🎉 Phase 6.3 — display + input + compositor-core intégrés runtime 2026-05-09 12:20:04 +02:00
phase6-3-red-top.png 🎉 Phase 6.3 — display + input + compositor-core intégrés runtime 2026-05-09 12:20:04 +02:00
phase6-4-wayland-client-surface.png 🎉🎉🎉 Phase 6.4 — Wayland complet : un client externe affiche ses pixels 2026-05-09 13:30:05 +02:00
phase6-4-wayland-frontend.md 🎉🎉🎉 Phase 6.4 — Wayland complet : un client externe affiche ses pixels 2026-05-09 13:30:05 +02:00
phase6-compositor-core.md 🎉 Phase 6.3 — display + input + compositor-core intégrés runtime 2026-05-09 12:20:04 +02:00
phase7-1-xdg-shell.md 🎉 Phase 7.1 — xdg-shell minimal validé runtime 2026-05-09 14:34:45 +02:00
phase7-1-xdg-toplevel.png 🎉 Phase 7.1 — xdg-shell minimal validé runtime 2026-05-09 14:34:45 +02:00
phase7-2-input-routing.png 🎉 Phase 7.2 — wl_seat + wl_keyboard + wl_pointer routing input 2026-05-09 15:05:03 +02:00
phase7-3-cursor-over-window-200x150.png 🎉 Phase 7.3 — curseur software validé runtime 2026-05-13 09:06:56 +02:00
phase7-3-cursor-over-window-250x200.png 🎉 Phase 7.3 — curseur software validé runtime 2026-05-13 09:06:56 +02:00
phase7-3-cursor-pos-50x750.png 🎉 Phase 7.3 — curseur software validé runtime 2026-05-13 09:06:56 +02:00
phase7-3-cursor-pos-900x600.png 🎉 Phase 7.3 — curseur software validé runtime 2026-05-13 09:06:56 +02:00
phase7-3-cursor-pos-center.png 🎉 Phase 7.3 — curseur software validé runtime 2026-05-13 09:06:56 +02:00
phase7-3-cursor.md 🎉 Phase 7.3 — curseur software validé runtime 2026-05-13 09:06:56 +02:00
phase7-4-1-initial-B-top.png 🎉 Phase 7.4 — focus + raise on click validés runtime 2026-05-13 10:21:05 +02:00
phase7-4-2-after-click-A-raised.png 🎉 Phase 7.4 — focus + raise on click validés runtime 2026-05-13 10:21:05 +02:00
phase7-4-3-after-click-B-raised.png 🎉 Phase 7.4 — focus + raise on click validés runtime 2026-05-13 10:21:05 +02:00
phase7-4-focus-raise.md 🎉 Phase 7.4 — focus + raise on click validés runtime 2026-05-13 10:21:05 +02:00
phase7-5-after-fuzz.png 🎉 Phase 7.5 — robustesse paquet A validée runtime 2026-05-13 11:57:21 +02:00
phase7-5-robustness.md 🎉 Phase 7.5 — robustesse paquet A validée runtime 2026-05-13 11:57:21 +02:00
phase7-6-cleanup-no-ghost.png 🎉 Phase 7.6 — multi-clients paquet B validé runtime 2026-05-13 18:51:33 +02:00
phase7-6-multi-clients.md 🎉 Phase 7.6 — multi-clients paquet B validé runtime 2026-05-13 18:51:33 +02:00
phase7-6-two-clients.png 🎉 Phase 7.6 — multi-clients paquet B validé runtime 2026-05-13 18:51:33 +02:00
phase7-7-drag-pos1.png 🎉 Phase 7.7 — move interactif xdg_toplevel validé runtime 2026-05-13 19:22:04 +02:00
phase7-7-drag-pos2.png 🎉 Phase 7.7 — move interactif xdg_toplevel validé runtime 2026-05-13 19:22:04 +02:00
phase7-7-move-resize.md 🎉 Phase 7.7 — move interactif xdg_toplevel validé runtime 2026-05-13 19:22:04 +02:00
phase7-7-post-release.png 🎉 Phase 7.7 — move interactif xdg_toplevel validé runtime 2026-05-13 19:22:04 +02:00
phase7-8-1-before-resize.png 🎉 Phase 7.8 — resize interactif xdg_toplevel + durcissements 2026-05-13 19:47:53 +02:00
phase7-8-2-resize-grown.png 🎉 Phase 7.8 — resize interactif xdg_toplevel + durcissements 2026-05-13 19:47:53 +02:00
phase7-8-3-resize-shrunk.png 🎉 Phase 7.8 — resize interactif xdg_toplevel + durcissements 2026-05-13 19:47:53 +02:00
phase7-8-resize.md 🎉 Phase 7.8 — resize interactif xdg_toplevel + durcissements 2026-05-13 19:47:53 +02:00
phase7-9-1-initial-320x200.png 🎉 Phase 7.9 — polish : min/max size + Activated state + throttling 2026-05-13 20:54:33 +02:00
phase7-9-2-clamp-min.png 🎉 Phase 7.9 — polish : min/max size + Activated state + throttling 2026-05-13 20:54:33 +02:00
phase7-9-polish.md 🎉 Phase 7.9 — polish : min/max size + Activated state + throttling 2026-05-13 20:54:33 +02:00
redox-wayland-primitives.md Initial commit: phases 1-3 du portage Wayland Rust pour Redox OS 2026-05-08 17:41:55 +02:00