diff options
| author | ruki <[email protected]> | 2017-12-22 22:35:14 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-12-22 09:31:26 +0800 |
| commit | 0f825ce5a225f7dfba8e46e44de82c50df0b2e35 (patch) | |
| tree | 2948fca0cc55a67a57ef10901a25a503828415f5 /xmake/core/ui/program.lua | |
| parent | 8594fdccd6cb87909a227f6ad0d794188bc11584 (diff) | |
improve cui refresh
Diffstat (limited to 'xmake/core/ui/program.lua')
| -rw-r--r-- | xmake/core/ui/program.lua | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/xmake/core/ui/program.lua b/xmake/core/ui/program.lua index 8d30903c0..e934e8e54 100644 --- a/xmake/core/ui/program.lua +++ b/xmake/core/ui/program.lua @@ -123,23 +123,31 @@ end -- get the current event function program:event() + -- get event from the event queue first + local event_queue = self._EVENT_QUEUE + if event_queue then + local e = event_queue[1] + if e then + table.remove(event_queue, 1) + return e + end + end + -- get input key local key_code, key_name, key_meta = self:_input_key() if key_code then - if key_name == "Resize" or key_name == "CtrlL" then - self:change_bounds(Rect{0, 0, curses.columns(), curses.lines()}) - self:refresh() - elseif key_name == "Refresh" then - self:refresh() - else - return event.keyboard{key_code, key_name, key_meta} - end + return event.keyboard{key_code, key_name, key_meta} end end -- put an event to view function program:event_put(e) - -- TODO + + -- init event queue + self._EVENT_QUEUE = self._EVENT_QUEUE or {} + + -- put event to queue + table.insert(self._EVENT_QUEUE, e) end -- run program loop |
