X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=window.ml;h=6e720b7b4b4e4ffcf98d73c317bec4c4f3a78794;hb=refs%2Ftags%2F0.1.7;hp=47b9f802a875fb5be2b0c903f6f4a37adefbba13;hpb=169ad2425868939c32b35d97d20412de230e34d2;p=guestfs-browser.git diff --git a/window.ml b/window.ml index 47b9f80..6e720b7 100644 --- a/window.ml +++ b/window.ml @@ -118,9 +118,14 @@ let throbber_idle ws () = let progress ws (position, total) = if position = 0L && total = 1L then ws.progress_bar#pulse () - else - ws.progress_bar#set_fraction - (Int64.to_float position /. Int64.to_float total) + else ( + let frac = Int64.to_float position /. Int64.to_float total in + if frac < 0. || frac > 1. then + eprintf "warning: progress bar out of range: %Ld / %Ld (%g)\n" + position total frac; + let frac = if frac < 0. then 0. else if frac > 1. then 1. else frac in + ws.progress_bar#set_fraction frac + ) (* This is called in the main thread whenever a command fails in the * slave thread. The command queue has been cleared before this is