[meld] filediff: Dodge divide-by-zero in some edge cases



commit 033cae97dcd2bb1f7a06ff360e459cfea686bca3
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Tue May 2 07:19:55 2017 +1000

    filediff: Dodge divide-by-zero in some edge cases
    
    I'm not totally clear on when this happens, but in some cases (e.g.,
    during slow file loading, when line revalidation is taking a while) we
    occasionally get lines with a height of zero. Since this adjustment
    exists mainly for smoother scrolling, it's easiest to just avoid the
    zero rather than doing anything complicated.

 meld/filediff.py |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
---
diff --git a/meld/filediff.py b/meld/filediff.py
index 4001b05..1522be3 100644
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@ -1674,7 +1674,8 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
         # Not doing this calculation makes scrolling jerky.
         middle_iter, _ = self.textview[master].get_line_at_y(int(middle_y))
         line_y, height = self.textview[master].get_line_yrange(middle_iter)
-        target_line = middle_iter.get_line() + ((middle_y-line_y)/height)
+        height = height or 1
+        target_line = middle_iter.get_line() + ((middle_y - line_y) / height)
 
         # In the case of two pane scrolling, it's clear how to bind
         # scrollbars: if the user moves the left pane, we move the


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]