fix(greenhouse): draws/updates after exit by resize

pull/277/merge
sammyette 2024-04-27 13:52:07 -04:00
parent 521298733e
commit fb9d30520a
Signed by: sammyette
GPG Key ID: 904FC49417B44DCD
1 changed files with 19 additions and 12 deletions

View File

@ -271,6 +271,15 @@ end
function Greenhouse:input(char) function Greenhouse:input(char)
end end
local function read()
terminal.saveState()
terminal.setRaw()
local c = hilbish.editor.readChar()
terminal.restoreState()
return c
end
function Greenhouse:initUi() function Greenhouse:initUi()
local ansikit = require 'ansikit' local ansikit = require 'ansikit'
local bait = require 'bait' local bait = require 'bait'
@ -280,14 +289,17 @@ function Greenhouse:initUi()
local Page = require 'nature.greenhouse.page' local Page = require 'nature.greenhouse.page'
local done = false local done = false
bait.catch('signal.sigint', function() local function sigint()
ansikit.clear() ansikit.clear()
done = true done = true
end) end
bait.catch('signal.resize', function() local function resize()
self:update() self:update()
end) end
bait.catch('signal.sigint', sigint)
bait.catch('signal.resize', resize)
ansikit.screenAlt() ansikit.screenAlt()
ansikit.clear(true) ansikit.clear(true)
@ -311,15 +323,10 @@ function Greenhouse:initUi()
ansikit.showCursor() ansikit.showCursor()
ansikit.screenMain() ansikit.screenMain()
end
function read() self = nil
terminal.saveState() bait.release('signal.sigint', sigint)
terminal.setRaw() bait.release('signal.resize', resize)
local c = hilbish.editor.readChar()
terminal.restoreState()
return c
end end
return Greenhouse return Greenhouse