Skip to content

Commit e1a36bf

Browse files
committed
Only set outline if it's not empty
1 parent 8bbff37 commit e1a36bf

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

crates/krilla/src/object/outline.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ pub struct Outline {
3333
children: Vec<OutlineNode>,
3434
}
3535

36+
impl Outline {
37+
pub(crate) fn is_empty(&self) -> bool {
38+
self.children.is_empty()
39+
}
40+
}
41+
3642
impl Default for Outline {
3743
fn default() -> Self {
3844
Self::new()

crates/krilla/src/serialize.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,16 @@ impl SerializeContext {
247247
}
248248

249249
pub(crate) fn set_outline(&mut self, outline: Outline) {
250-
self.global_objects.outline = MaybeTaken::new(Some(outline));
250+
// Only set it if it's not empty or if the current validator requires an
251+
// outline.
252+
if !outline.is_empty()
253+
|| self
254+
.serialize_settings
255+
.validator
256+
.prohibits(&ValidationError::MissingDocumentOutline)
257+
{
258+
self.global_objects.outline = MaybeTaken::new(Some(outline));
259+
}
251260
}
252261

253262
pub(crate) fn set_metadata(&mut self, metadata: Metadata) {

0 commit comments

Comments
 (0)