forked from 1b-agent/opencadstudio-upstream
fix(dock): keep auto-hiding panels shown while the pointer is on their dropdowns
iced gives the layer under an overlay a levitating cursor, so the dock edge's mouse_area read the pointer on any dropdown or combo list in a pallet as leaving, and auto-hide collapsed the panel mid-pick. Track enter/leave with a small hover_zone wrapper that lands the cursor before its bounds test, on docked edges and floating pallets alike. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014ihuqzxdUhd9UbioPn5MGu
This commit is contained in:
4 files changed
+196
-15
No files matched your search
@@ -207,12 +207,12 @@ impl OpenCADStudio {
|
||||
Some(HoverPending::Hide)
|
||||
if self.dock_peek.is_some_and(|id| self.dock.auto_hides(id)) =>
|
||||
{
|
||||
// A dropdown or the colour window opened from the
|
||||
// panel draws as an overlay, which the edge's
|
||||
// mouse area reads as the pointer leaving. Keep
|
||||
// the panel out until it closes, so a pick can
|
||||
// still land; then hide unless the pointer is
|
||||
// back (its re-entry cancels this).
|
||||
// The edge's hover zone keeps a dropdown inside
|
||||
// it from reading as a leave; a colour popup can
|
||||
// still reach past it (or be the Select Color
|
||||
// window). Keep the panel out until it closes, so
|
||||
// a pick can still land; then hide unless the
|
||||
// pointer is back (its re-entry cancels this).
|
||||
if self.dock_popup_open() {
|
||||
return self.dock_hover_arm(HoverPending::Hide);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user