Select Color and ribbon: ByLayer shows the layer's colour

ByLayer swatches were always gray. The Select Color panel's Current/New
band and info line now show the colour of the layer the colour is for
(the newest selected object's layer, or the current layer for new
objects); the ribbon's colour control and the ByLayer row of its colour
dropdown show the current layer's colour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013rGmDUNr1hUf4zo1X3dak8
This commit is contained in:
Claude committed 2026-10-14 14:50:58 +00:00
1 parent 652aa61b22
commit 5a296ad48c
5 files changed
+79 -12

No files matched your search

+6 -1
View File
@@ -1167,7 +1167,12 @@ pub(super) fn render_large<'a>(item: &RibbonItem, ctx: &RenderCtx<'_>) -> Elemen
.width(Length::Fixed(PROP_W))
};
let (color_swatch, _) = acad_color_display(active_color);
// ByLayer shows the current layer's colour.
let color_swatch = layer_infos
.iter()
.find(|layer| layer.name == active_layer)
.filter(|_| active_color == AcadColor::ByLayer)
.map_or_else(|| acad_color_display(active_color).0, |layer| layer.color);
let color_row = prop_row(
crate::ui::color_select::color_display_name(active_color),
PROP_COLOR_ID,