From 96be972c18b9ff389cf713d9cd025fb31bea503f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Benencia?= Date: Thu, 29 Aug 2013 23:33:37 -0300 Subject: down-scrolling support in Email mode --- Handlers.hs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'Handlers.hs') diff --git a/Handlers.hs b/Handlers.hs index e01d51a..0fc1bd7 100644 --- a/Handlers.hs +++ b/Handlers.hs @@ -34,8 +34,7 @@ changeMode IndexMode = do let email = parseEmail msg let body = getBody $ email let el = formatBody body $ screenColumns st - let sbe = scrollCrop 0 (screenRows st) el - let est = (emailState st) { currentEmail = email, emailLines = el, scrollBufferEm = sbe } + let est = (emailState st) { currentEmail = email, emailLines = el, scrollRowEm = 0 } put $ st { mode = EmailMode, emailState = est } changeMode MaildirMode = do @@ -86,6 +85,17 @@ incSelectedRow MaildirMode = do else -- Move the selected row put $ incrementSelectedRow st +incSelectedRow EmailMode = do + st <- get + let est = emailState st + let cur = scrollRowEm est + let scrRows = screenRows st + let totalRows = length $ emailLines est + let est' = est { scrollRowEm = (cur + 1) } + + when ((totalRows - scrRows) > (scrollRowEm est)) $ + put $ st { emailState = est' } + incSelectedRow _ = (=<<) put $ get >>= \st -> return $ incrementSelectedRow st {- More boilerplate code -} -- cgit v1.2.3