@@ -36,7 +36,7 @@ main = mainWidget $ do
36 V.EvKey (V.KChar 'c') [V.MCtrl] -> Just ()
36 V.EvKey (V.KChar 'c') [V.MCtrl] -> Just ()
37 _ -> Nothing
37 _ -> Nothing
38 let buttons = do
38 let buttons = do
39− text $ pure "Select an example. Ctrl+c to quit."
39+ text $ pure "Select an example. Esc will bring you back here. Ctrl+c to quit."
40 let region1 = ffor size $ \(w,h) ->
40 let region1 = ffor size $ \(w,h) ->
41 Region (w `div` 6) (h `div` 6) (w `div` 6) (h `div` 6)
41 Region (w `div` 6) (h `div` 6) (w `div` 6) (h `div` 6)
42 region2 = ffor size $ \(w,h) ->
42 region2 = ffor size $ \(w,h) ->
@@ -44,12 +44,19 @@ main = mainWidget $ do
44 todo' <- pane region1 (pure True) $ button "Todo List"
44 todo' <- pane region1 (pure True) $ button "Todo List"
45 editor <- pane region2 (pure True) $ button "Text Editor"
45 editor <- pane region2 (pure True) $ button "Text Editor"
46 return $ leftmost
46 return $ leftmost
47− [ Example_TextEditor <$ editor
47+ [ Left Example_TextEditor <$ editor
48− , Example_Todo <$ todo'
48+ , Left Example_Todo <$ todo'
53+ return $ fforMaybe i $ \case
54+ V.EvKey V.KEsc [] -> Just $ Right ()
50− rec out <- networkHold buttons $ ffor (switch $ current out) $ \case
56+ rec out <- networkHold buttons $ ffor (switch (current out)) $ \case
51− Example_TextEditor -> testBoxes >> return never
57+ Left Example_TextEditor -> escapable testBoxes
52− Example_Todo -> taskList >> return never
58+ Left Example_Todo -> escapable taskList