diff --git a/Cargo.lock b/Cargo.lock index f957a9daf..5bd723c07 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -878,7 +878,7 @@ checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "cadkernel" version = "0.1.0" -source = "git+https://github.com/HakanSeven12/cadkernel.git?rev=7d1fc67ec179ce9eac726efaedaa7c59d60e2416#7d1fc67ec179ce9eac726efaedaa7c59d60e2416" +source = "git+https://github.com/HakanSeven12/cadkernel.git?rev=ac2e69070278bf56ae44829f31a69f6a1006ac41#ac2e69070278bf56ae44829f31a69f6a1006ac41" dependencies = [ "acadrust", "cavalier_contours", diff --git a/Cargo.toml b/Cargo.toml index 3f9993cbf..443ed645d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,7 +28,7 @@ rfd = "0.17" clap = { version = "4", features = ["derive"] } env_logger = "0.11" acadrust = { git = "https://github.com/HakanSeven12/cadcodec.git", rev = "393d6c0857447f9ca678bed97a612707f0a842c6", features = ["serde"] } -cadkernel = { git = "https://github.com/HakanSeven12/cadkernel.git", rev = "7d1fc67ec179ce9eac726efaedaa7c59d60e2416", features = ["acis", "offset"] } +cadkernel = { git = "https://github.com/HakanSeven12/cadkernel.git", rev = "ac2e69070278bf56ae44829f31a69f6a1006ac41", features = ["acis", "offset"] } dwg-thumbnailer = { path = "crates/dwg-thumbnailer" } flate2 = "1" image = { version = "0.25", default-features = false, features = ["png", "jpeg", "bmp", "tiff"] } diff --git a/src/app/update/viewport.rs b/src/app/update/viewport.rs index ce5b084ed..48153179a 100644 --- a/src/app/update/viewport.rs +++ b/src/app/update/viewport.rs @@ -2783,12 +2783,14 @@ impl OpenCADStudio { // press starts a box selection, so without this they'd only // close on the second click (issue #104). self.tabs[i].properties.color_picker_open = false; - // Click anywhere outside the popup dismisses it. The - // menu's own buttons live above this mouse_area, so a - // press that reaches here means the cursor is not on - // any menu item. - if self.grip_popup.take().is_some() { + // Click anywhere outside the popup dismisses it. A hover popup must + // not swallow a grip click beneath it; a pinned popup was opened by an + // explicit click, so its outside click only dismisses the menu. + if let Some(popup) = self.grip_popup.take() { self.grip_hover = None; + if popup.pinned { + return Task::none(); + } } // Outside-click dismiss for the visibility-state dropdown // (its buttons sit above this mouse_area).