summaryrefslogtreecommitdiff
path: root/Assistant/DaemonStatus.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-08-31 13:06:27 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-08-31 13:06:27 -0400
commit38a292fd36c2bae72fb2dafbebf6c41bfcee3bb4 (patch)
treecca1e2dab71c1a8283a6adb9d3ebb817a24290f9 /Assistant/DaemonStatus.hs
parent8335a7ff7a57472f7d3c439a9a58053cbc33156d (diff)
preserve bytesComplete when updating a transfer info
Avoids flicker to 0% when resuming a paused transfer.
Diffstat (limited to 'Assistant/DaemonStatus.hs')
-rw-r--r--Assistant/DaemonStatus.hs5
1 files changed, 3 insertions, 2 deletions
diff --git a/Assistant/DaemonStatus.hs b/Assistant/DaemonStatus.hs
index 24ac0ffb0..b5dd08d0e 100644
--- a/Assistant/DaemonStatus.hs
+++ b/Assistant/DaemonStatus.hs
@@ -196,8 +196,8 @@ alterTransferInfo :: DaemonStatusHandle -> Transfer -> (TransferInfo -> Transfer
alterTransferInfo dstatus t a = updateTransferInfo' dstatus $ M.adjust a t
{- Updates a transfer's info. Adds the transfer to the map if necessary,
- - or if already present, updates it while preserving the old transferTid
- - and transferPaused values, which are not written to disk. -}
+ - or if already present, updates it while preserving the old transferTid,
+ - transferPaused, and bytesComplete values, which are not written to disk. -}
updateTransferInfo :: DaemonStatusHandle -> Transfer -> TransferInfo -> IO ()
updateTransferInfo dstatus t info = updateTransferInfo' dstatus $
M.insertWith' merge t info
@@ -205,6 +205,7 @@ updateTransferInfo dstatus t info = updateTransferInfo' dstatus $
merge new old = new
{ transferTid = maybe (transferTid new) Just (transferTid old)
, transferPaused = transferPaused new || transferPaused old
+ , bytesComplete = maybe (bytesComplete new) Just (bytesComplete old)
}
updateTransferInfo' :: DaemonStatusHandle -> (TransferMap -> TransferMap) -> IO ()