From 936d480267578d7e80675e78ec1880aaaaab72d6 Mon Sep 17 00:00:00 2001
From: Héctor Ramón Jiménez <hector@hecrj.dev>
Date: Fri, 1 Dec 2023 16:04:27 +0100
Subject: Clip text to `viewport` bounds instead of layout bounds

---
 graphics/src/primitive.rs | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

(limited to 'graphics/src/primitive.rs')

diff --git a/graphics/src/primitive.rs b/graphics/src/primitive.rs
index 4ed512c1..837eb77a 100644
--- a/graphics/src/primitive.rs
+++ b/graphics/src/primitive.rs
@@ -14,24 +14,26 @@ use std::sync::Arc;
 pub enum Primitive<T> {
     /// A text primitive
     Text {
-        /// The contents of the text
+        /// The contents of the text.
         content: String,
-        /// The bounds of the text
+        /// The bounds of the text.
         bounds: Rectangle,
-        /// The color of the text
+        /// The color of the text.
         color: Color,
-        /// The size of the text in logical pixels
+        /// The size of the text in logical pixels.
         size: Pixels,
-        /// The line height of the text
+        /// The line height of the text.
         line_height: text::LineHeight,
-        /// The font of the text
+        /// The font of the text.
         font: Font,
-        /// The horizontal alignment of the text
+        /// The horizontal alignment of the text.
         horizontal_alignment: alignment::Horizontal,
-        /// The vertical alignment of the text
+        /// The vertical alignment of the text.
         vertical_alignment: alignment::Vertical,
         /// The shaping strategy of the text.
         shaping: text::Shaping,
+        /// The viewport of the text.
+        viewport: Rectangle,
     },
     /// A paragraph primitive
     Paragraph {
@@ -41,15 +43,19 @@ pub enum Primitive<T> {
         position: Point,
         /// The color of the paragraph.
         color: Color,
+        /// The viewport of the paragraph.
+        viewport: Rectangle,
     },
     /// An editor primitive
     Editor {
         /// The [`editor::Weak`] reference.
         editor: editor::Weak,
-        /// The position of the paragraph.
+        /// The position of the editor.
         position: Point,
-        /// The color of the paragraph.
+        /// The color of the editor.
         color: Color,
+        /// The viewport of the editor.
+        viewport: Rectangle,
     },
     /// A quad primitive
     Quad {
-- 
cgit