summaryrefslogtreecommitdiffstats
path: root/src/ui/grid/context.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/grid/context.rs')
-rw-r--r--src/ui/grid/context.rs17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/ui/grid/context.rs b/src/ui/grid/context.rs
index eb870f4..9018b29 100644
--- a/src/ui/grid/context.rs
+++ b/src/ui/grid/context.rs
@@ -120,16 +120,27 @@ impl Context {
}
/// Updates internals that are dependant on the drawing area.
- pub fn update(
+ pub fn resize(
&mut self,
da: &DrawingArea,
win: &gdk::Window,
cols: usize,
rows: usize,
hl_defs: &HlDefs,
- prev_cols: usize,
- prev_rows: usize,
) {
+ let prev_rows = self.rows.len();
+ let prev_cols = self.rows.get(0).map(|r| r.len()).unwrap_or(0);
+
+ if self.rows.len() != rows {
+ self.rows.resize_with(rows, || Row::new(rows));
+ }
+
+ if self.rows.get(0).unwrap().len() != cols {
+ for row in self.rows.iter_mut() {
+ row.resize(cols);
+ }
+ }
+
let pctx = da.get_pango_context().unwrap();
pctx.set_font_description(&self.cell_metrics.font.as_pango_font());