From b3ec50d92451b99dd08b6030b08854c8cc77524b Mon Sep 17 00:00:00 2001 From: David Vazgenovich Shakaryan Date: Fri, 16 Jan 2026 17:23:32 -0800 Subject: track and flush OSD changes for fewer redraws --- osd.lua | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'osd.lua') diff --git a/osd.lua b/osd.lua index 31cc49c..e638ee8 100644 --- a/osd.lua +++ b/osd.lua @@ -54,6 +54,16 @@ function osd.new(init) return t end +function mt:dirty() + self.is_dirty = true +end + +function mt:flush(state) + if self.is_dirty then + self:redraw(state) + end +end + function mt:resize(w, h) self.width = w self.height = h @@ -63,6 +73,7 @@ end function mt:set_status(msg, level) self.status_msg = msg self.status_level = level + self:dirty() end function mt:status_line() @@ -466,6 +477,8 @@ function mt:redraw(state) else self:clear_img(true) end + + self.is_dirty = false end function mt:toggle_hidden() -- cgit v1.2.3-70-g09d2