on master help sign in
have eventecho print out final event
f0dd4aaCorey O'Connor
test/EventEcho.hs+5−7
@@ -17,14 +17,13 @@ type App = RWST Vty () (Seq String) IO
17
17
18main = do
18main = do
19 vty <- mkVty def
19 vty <- mkVty def
20− _ <- execRWST vty_interact vty Seq.empty
20+ _ <- execRWST (vty_interact False) vty Seq.empty
21 shutdown vty
21 shutdown vty
22
22
23−vty_interact :: App ()
23+vty_interact :: Bool -> App ()
24−vty_interact = do
24+vty_interact should_exit = do
25 update_display
25 update_display
26− done <- handle_next_event
26+ unless should_exit $ handle_next_event >>= vty_interact
27− unless done vty_interact
28
27
29update_display :: App ()
28update_display :: App ()
30update_display = do
29update_display = do
@@ -36,8 +35,7 @@ update_display = do
36
35
37handle_next_event = ask >>= liftIO . next_event >>= handle_event
36handle_next_event = ask >>= liftIO . next_event >>= handle_event
38 where
37 where
39− handle_event (EvKey KEsc []) = return True
40 handle_event e = do
38 handle_event e = do
41 modify $ (<|) (show e) >>> Seq.take event_buffer_size
39 modify $ (<|) (show e) >>> Seq.take event_buffer_size
42− return False
40+ return $ e == EvKey KEsc []
43
41