diff --git a/src/calibre/gui2/tweak_book/diff.py b/src/calibre/gui2/tweak_book/diff.py index e62ac984ce..c460fbf3b9 100644 --- a/src/calibre/gui2/tweak_book/diff.py +++ b/src/calibre/gui2/tweak_book/diff.py @@ -277,7 +277,8 @@ class DiffViewHandle(QSplitterHandle): # {{{ lorigin, rorigin = left.contentOffset(), right.contentOffset() lfv, rfv = left.firstVisibleBlock().blockNumber(), right.firstVisibleBlock().blockNumber() - for (ltop, lbot, kind), (rtop, rbot, kind) in zip(left.changes, right.changes): + for (ltop, lbot, kind), (rtop, rbot, kind) in sorted( + zip(left.changes, right.changes), key=lambda (l, r):{'replace':0}.get(l[2], 1)): if lbot < lfv and rbot < rfv: continue ly_top = left.blockBoundingGeometry(ldoc.findBlockByNumber(ltop)).translated(lorigin).y() + fw