Files
figcraft/crates
叶林橦 0201cebefc M5: land the shared popover on main's colour and style pickers
main moved the colour picker into `widgets/colorpicker.rs` and gave it a fixed
area id (#976: `window_id()`), which the style picker looks up to tell a press
inside the picker from one outside. This merge keeps that id as the picker's
own area: the popover takes it as-is (`Popover::with_id`), so the lookup and the
#237 regression test keep working — the test now finds the picker by the id
instead of by its z-order.

The rest is the popover arriving on top of current main:

- the colour picker's `egui::Window` is the shared card: its 40 pt header —
  title 16 in, X 8 in from the right — is the popover's, and its body is
  unchanged, eyedropper included;
- the style picker's own area, frame and border are the same card on the dark
  surface; its title moved into the header, its tools row stays;
- presses in the Design panel and on the control that opened the picker are
  held out of the closing, so that control's own click toggles the picker;
- while the eyedropper samples (still picking, or a colour just picked) a press
  on the canvas is the pick, so it does not close the picker it picks for.

`right.rs` was split by main: its four swatch call sites are now in
`panels/right.rs` (page background), `panels/right/paints.rs` (a text range's
fill, a paint row) and `panels/right/effects.rs` (an effect's colour). egui 0.37
deprecates `Id::new` for `Id::unique`, which the new module uses.

`cargo test -p figcraft-ui-egui`: 824 + 8 + 1 pass; fmt and clippy clean.
2026-10-27 10:42:55 +08:00
..
2026-10-26 23:38:20 +07:00
2026-10-26 09:21:24 +07:00