From 6c99b232da299f36b186061d430199d9ca356f43 Mon Sep 17 00:00:00 2001 From: Shawn Pearce Date: Thu, 5 Dec 2013 13:59:54 -0800 Subject: [PATCH] SideBySide2: Fix truncated long lines CM3 needs a call to refresh() after setHeight to get the horizontal width correct for any lines longer than the window width. Bug: Issue 2428 Change-Id: I608264d71c98829c2f39d9acef12445088591bbb --- .../gerrit/client/diff/SideBySide2.java | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java index 4de02b05f8..4bbcc0e252 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java @@ -239,11 +239,18 @@ public class SideBySide2 extends Screen { Window.enableScrolling(false); final int height = getCodeMirrorHeight(); - cmA.setHeight(height); - cmB.setHeight(height); + operation(new Runnable() { + @Override + public void run() { + cmA.setHeight(height); + cmB.setHeight(height); + cmA.refresh(); + cmB.refresh(); + cmB.setCursor(LineCharacter.create(0)); + cmB.focus(); + } + }); diffTable.sidePanel.adjustGutters(cmB); - cmB.setCursor(LineCharacter.create(0)); - cmB.focus(); prefetchNextFile(); } @@ -1376,6 +1383,20 @@ public class SideBySide2 extends Screen { return cmB; } + void operation(final Runnable apply) { + cmA.operation(new Runnable() { + @Override + public void run() { + cmB.operation(new Runnable() { + @Override + public void run() { + apply.run(); + } + }); + } + }); + } + private void prefetchNextFile() { String nextPath = header.getNextPath(); if (nextPath != null) {