diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -12,7 +12,7 @@ 'core.pkg.css' => '6a8c9533', 'core.pkg.js' => '6e5c894f', 'differential.pkg.css' => 'ce54994e', - 'differential.pkg.js' => '49515551', + 'differential.pkg.js' => '68fa36fc', 'diffusion.pkg.css' => '42c75c37', 'diffusion.pkg.js' => 'a98c0bf7', 'maniphest.pkg.css' => '35995d6d', @@ -377,7 +377,7 @@ 'rsrc/js/application/dashboard/behavior-dashboard-query-panel-select.js' => '1e413dc9', 'rsrc/js/application/dashboard/behavior-dashboard-tab-panel.js' => '0116d3e8', 'rsrc/js/application/diff/DiffChangeset.js' => 'a31ffc00', - 'rsrc/js/application/diff/DiffChangesetList.js' => '40850e53', + 'rsrc/js/application/diff/DiffChangesetList.js' => '22f6bb51', 'rsrc/js/application/diff/DiffInline.js' => 'a4a14a94', 'rsrc/js/application/diff/behavior-preview-link.js' => 'f51e9c17', 'rsrc/js/application/differential/behavior-diff-radios.js' => '925fe8cd', @@ -774,7 +774,7 @@ 'phabricator-darkmessage' => '26cd4b73', 'phabricator-dashboard-css' => '5a205b9d', 'phabricator-diff-changeset' => 'a31ffc00', - 'phabricator-diff-changeset-list' => '40850e53', + 'phabricator-diff-changeset-list' => '22f6bb51', 'phabricator-diff-inline' => 'a4a14a94', 'phabricator-drag-and-drop-file-upload' => '4370900d', 'phabricator-draggable-list' => 'c9ad6f70', @@ -1075,6 +1075,10 @@ 'javelin-typeahead-source', 'javelin-util', ), + '22f6bb51' => array( + 'javelin-install', + 'phuix-button-view', + ), 23387297 => array( 'javelin-install', 'javelin-util', @@ -1256,10 +1260,6 @@ 'javelin-behavior', 'javelin-uri', ), - '40850e53' => array( - 'javelin-install', - 'phuix-button-view', - ), '4234f572' => array( 'syntax-default-css', ), diff --git a/src/applications/differential/render/DifferentialChangesetTwoUpRenderer.php b/src/applications/differential/render/DifferentialChangesetTwoUpRenderer.php --- a/src/applications/differential/render/DifferentialChangesetTwoUpRenderer.php +++ b/src/applications/differential/render/DifferentialChangesetTwoUpRenderer.php @@ -453,11 +453,17 @@ 'class' => 'n', )); + $copy_gutter = phutil_tag( + 'td', + array( + 'class' => 'copy', + )); + $new_content_cell = phutil_tag( 'td', array( 'class' => $new_classes, - 'colspan' => '3', + 'colspan' => '2', ), $new_content); @@ -468,6 +474,7 @@ $old_line_cell, $old_content_cell, $new_line_cell, + $copy_gutter, $new_content_cell, )); diff --git a/webroot/rsrc/js/application/diff/DiffChangesetList.js b/webroot/rsrc/js/application/diff/DiffChangesetList.js --- a/webroot/rsrc/js/application/diff/DiffChangesetList.js +++ b/webroot/rsrc/js/application/diff/DiffChangesetList.js @@ -1196,19 +1196,30 @@ } // Find the leftmost cell that we're going to highlight: this is the next - // in the row. In 2up views, it should be directly adjacent. In + // in the row that does not have a "data-n" (line number) + // attribute. In 2up views, it should be directly adjacent. In // 1up views, we may have to skip over the other line number column. var l = top; - while (JX.DOM.isType(l, 'th')) { + while (l.nextSibling && l.getAttribute('data-n')) { l = l.nextSibling; } // Find the rightmost cell that we're going to highlight: this is the - // farthest consecutive, adjacent in the row. Sometimes the left - // and right nodes are the same (left side of 2up view); sometimes we're - // going to highlight several nodes (copy + code + coverage). + // farthest consecutive, adjacent in the row that does not have + // a "data-n" (line number) attribute. Sometimes the left and right nodes + // are the same (left side of 2up view); sometimes we're going to + // highlight several nodes (copy + code + coverage). var r = l; - while (r.nextSibling && JX.DOM.isType(r.nextSibling, 'td')) { + while (true) { + // No more cells in the row, so we can't keep expanding. + if (!r.nextSibling) { + break; + } + + if (r.nextSibling.getAttribute('data-n')) { + break; + } + r = r.nextSibling; }