From 867fbdc597e9cab5bd6996e3f7b511e8036f98ca Mon Sep 17 00:00:00 2001 From: Justin Hewlett Date: Sun, 29 Sep 2013 17:54:11 -0600 Subject: [PATCH] automatically resize diff pane to match window height. Does not adjust dynamically as the window is resized, however --- air/diffCmd.html | 9 +++++++++ src/Diff.js | 10 +++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/air/diffCmd.html b/air/diffCmd.html index 94dc7bb..4ab11e6 100644 --- a/air/diffCmd.html +++ b/air/diffCmd.html @@ -32,6 +32,9 @@

Edit

function appLoad() { window.nativeWindow.maximize(); + maximizeHeight(document.getElementById('scrollLeft')); + maximizeHeight(document.getElementById('scrollRight')); + air.NativeApplication.nativeApplication.addEventListener(air.InvokeEvent.INVOKE, onInvoke); var scrollLeft = document.getElementById('scrollLeft'); @@ -48,6 +51,12 @@

Edit

}); } + function maximizeHeight(element) { + if (window.innerHeight) { + element.style.height = (window.innerHeight - element.offsetTop - 10) + "px"; + } + } + function onInvoke(event) { var original = readFile(event.currentDirectory, event.arguments[0]); var edit = readFile(event.currentDirectory, event.arguments[1]); diff --git a/src/Diff.js b/src/Diff.js index 9fde6fc..2d21541 100644 --- a/src/Diff.js +++ b/src/Diff.js @@ -30,8 +30,8 @@ SourceDiff.Diff = function(ignoreLeadingWS) { var originalTrimmed = checkTrimLeadingWhiteSpace(originalLine); var editedTrimmed = checkTrimLeadingWhiteSpace(editedLine); - var s1Offset = originalLine.length - originalTrimmed.length; - var s2Offset = editedLine.length - editedTrimmed.length; + var originalOffset = originalLine.length - originalTrimmed.length; + var editOffset = editedLine.length - editedTrimmed.length; originalTrimmed = trimTrailingWhiteSpace(originalTrimmed); editedTrimmed = trimTrailingWhiteSpace(editedTrimmed); @@ -48,18 +48,18 @@ SourceDiff.Diff = function(ignoreLeadingWS) { while (i >= 0 && j >= 0) { if (originalTrimmed[i - 1] === editedTrimmed[j - 1]) { if (originalTrimmed[i - 1]) { - diff.addCommon(s1Offset + i - 1, s2Offset + j - 1); + diff.addCommon(originalOffset + i - 1, editOffset + j - 1); } i--; j--; } else if (j >= 0 && (i === 0 || matrix[i][j - 1] >= matrix[i - 1][j])) { if (editedTrimmed[j - 1].length > 0) { - diff.addInsert(s2Offset + j - 1); + diff.addInsert(editOffset + j - 1); } j--; } else if (i >= 0 && (j === 0 || matrix[i][j - 1] < matrix[i - 1][j])) { if (originalTrimmed[i - 1].length > 0) { - diff.addDelete(s1Offset + i - 1); + diff.addDelete(originalOffset + i - 1); } i--; }