diff --git a/crates/canvas/src/gpu/page.rs b/crates/canvas/src/gpu/page.rs
index 9f702348e84820e29a6637f25411a7c7f417db5b..f726cc1d7b8e68aba5d4d34c82f3543d15c29092 100644
--- a/crates/canvas/src/gpu/page.rs
+++ b/crates/canvas/src/gpu/page.rs
@@ -741,10 +741,16 @@ impl PageScene {
}
},
Content::File { .. } => Some((object.file()?.1, true)),
+ Content::Ink(_) if column.is_some() => None,
Content::Ink(ink) => Some((crate::editor::page::ink_bounds(ink)?, true)),
Content::ReadOnly(object) => Some((object.rect(), true)),
Content::Editable(_) => None,
})
+ .chain(
+ column
+ .and_then(crate::reading::Column::drawings_rect)
+ .map(|rect| (rect, true)),
+ )
}
pub(crate) fn header_text<'a>(
@@ -1043,6 +1049,7 @@ impl PageScene {
outline(*id, offset, primitives)?;
continue;
}
+ Content::Ink(_) if column.is_some() => continue,
Content::Ink(ink) => {
let [x, y] = crate::origin(&ink.layout);
let [dx, dy] = editor.map_or([0.0; 2], |editor| editor.ink_drag_offset(ink.id));
diff --git a/crates/canvas/src/interaction/accessibility.rs b/crates/canvas/src/interaction/accessibility.rs
index 793ad7859612e1dc51b885e39d3cf3ea9af19828..dd904270bb1cfe46ee9f3766494b5abfe3437bc7 100644
--- a/crates/canvas/src/interaction/accessibility.rs
+++ b/crates/canvas/src/interaction/accessibility.rs
@@ -358,7 +358,10 @@ impl Accessibility {
self.read_only.push((id, node));
}
if let Some(column) = column {
- for (text, bounds) in scene.header_text(editor, column) {
+ let note = column
+ .drawings_rect()
+ .map(|bounds| (crate::reading::DRAWINGS_NOTE.to_owned(), bounds));
+ for (text, bounds) in scene.header_text(editor, column).chain(note) {
let index = self.read_only.len();
let mut node = Node::new(Role::Label);
node.set_value(text);
diff --git a/crates/canvas/src/interaction/ink.rs b/crates/canvas/src/interaction/ink.rs
index e26e83624f47321575d47c6a9c073a6e43adbd0c..2df49174303620456260765a6aeb718f371cfc17 100644
--- a/crates/canvas/src/interaction/ink.rs
+++ b/crates/canvas/src/interaction/ink.rs
@@ -149,6 +149,9 @@ impl PageView {
/// A press at page point `point`, when a drawing tool takes it or it picks ink.
pub(super) fn ink_pressed(&mut self, point: [f32; 2]) -> Result