Merge pull request #3668 from Taha-Mahmoodi/fix/dither-followups

Gradients: dithered fills sample only what shows; review follow-ups to #3637
This commit is contained in:
BFlat
2026-10-23 00:23:42 +07:00
committed by GitHub
35 changed files with 227 additions and 27 deletions
+4
View File
@@ -403,6 +403,10 @@ fn set_paint(s: &mut Session, p: &Value, fill: bool) -> Result<Value> {
}
check_keep_model(p, cmd)?;
let paint = paint_from(s, p)?.ok_or_else(|| bad(cmd, "give color, none, swatch or gradient"))?;
// As `paint.editGradient`: a `dither` given applies to gradient fills only.
if !fill && matches!(&paint, Paint::Gradient(g) if g.gradient.dither) && p.get("swatch").is_none() {
return Err(bad(cmd, "`dither` applies to gradient fills (paint.setFill)"));
}
apply_paint(s, p, paint, fill)
}
+1 -1
View File
@@ -635,7 +635,7 @@ pub(crate) fn outlined_stroke(
blend: st.blend,
effects: st.effects.clone(),
overprint: st.overprint,
..vectorcraft_doc::appearance::FillLayer::new(st.paint.clone())
..vectorcraft_doc::appearance::FillLayer::new(st.paint.stroke_as_fill())
};
n.appearance = Appearance { items: vec![AppearanceItem::Fill(fill)], ..Default::default() }.into();
Some(n)