@@ -48,6 +48,7 @@ where
4848
4949import Graphics.Vty.Config
5050import Graphics.Vty.Input
51+import Graphics.Vty.Input.Events
5152import Graphics.Vty.Output
5253import Graphics.Vty.Output.Interface
5354import Graphics.Vty.Picture
@@ -209,16 +210,18 @@ internalMkVty input out = do
209210 maybe (return ()) innerUpdate mPic
210211
211212 let mkResize = uncurry EvResize <$> displayBounds out
213+
214+ handleInternalEvent ResumeAfterSignal = mkResize
215+ handleInternalEvent (InputEvent e) = return e
216+
212217 gkey = do
213− k <- atomically $ readTChan $ _eventChannel input
214− case k of
215− (EvResize _ _) -> mkResize
216− _ -> return k
218+ e <- atomically $ readTChan $ _eventChannel input
219+ handleInternalEvent e
217220 gkey' = do
218− k <- atomically $ tryReadTChan $ _eventChannel input
219− case k of
220− (Just (EvResize _ _)) -> Just <$> mkResize
221− _ -> return k
221+ mEv <- atomically $ tryReadTChan $ _eventChannel input
222+ case mEv of
223+ Just e -> Just <$> handleInternalEvent e
224+ Nothing -> return Nothing
222225
223226 return $ Vty { update = innerUpdate
224227 , nextEvent = gkey