fix view.window

This commit is contained in:
ruki
2020-05-06 00:52:34 +08:00
parent 868fc3e4d5
commit c06897142a
2 changed files with 16 additions and 13 deletions

View File

@@ -93,8 +93,8 @@ end
function view:exit()
-- close window
if self:window() then
self:window():close()
if self._WINDOW then
self._WINDOW:close()
self._WINDOW = nil
end
end
@@ -156,6 +156,15 @@ end
-- get the view window
function view:window()
if not self._WINDOW then
-- create window
self._WINDOW = curses.new_pad(self:height() > 0 and self:height() or 1, self:width() > 0 and self:width() or 1)
assert(self._WINDOW, "cannot create window!")
-- disable cursor
self._WINDOW:leaveok(true)
end
return self._WINDOW
end
@@ -217,21 +226,14 @@ function view:on_resize()
log:print("%s: resize ..", self)
-- close the previous windows first
if self:window() then
self:window():close()
if self._WINDOW then
self._WINDOW:close()
self._WINDOW = nil
end
-- need renew canvas
self._CANVAS = nil
-- create a new window
self._WINDOW = curses.new_pad(self:height() > 0 and self:height() or 1, self:width() > 0 and self:width() or 1)
assert(self._WINDOW, "cannot create window!")
-- disable cursor
self:window():leaveok(true)
-- clear mark
self:state_set("resize", false)

View File

@@ -126,6 +126,7 @@ end
-- on resize
function demo:on_resize()
self:dialog_main():bounds_set(rect {1, 1, self:width() - 1, self:height() - 1})
self:dialog_help():bounds_set(rect {1, 1, self:width() - 1, self:height() - 1})
self:center(self:dialog_input(), {centerx = true, centery = true})
self:center(self:dialog_tips(), {centerx = true, centery = true})
application.on_resize(self)