From 67efe659cc725f2d18903d9833137ceadbcf0f60 Mon Sep 17 00:00:00 2001 From: Shawn Pearce Date: Thu, 12 Dec 2013 12:20:34 -0800 Subject: [PATCH] ChangeScreen2: Don't open files with middle click If the user middle clicks on a file path make that row the current row, but don't open the path in this tab. Instead the link will open in a new tab. Change-Id: I3b3fda39ffdb9cc0901e582635c1c297547e9939 --- .../java/com/google/gerrit/client/change/FileTable.java | 7 ++++--- .../com/google/gerrit/client/patches/SideBySideTable.java | 6 ++++-- .../com/google/gerrit/client/patches/UnifiedDiffTable.java | 5 +++-- .../java/com/google/gerrit/client/ui/NavigationTable.java | 4 ++-- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java index e30fddebb7..5aa5537fb2 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileTable.java @@ -113,6 +113,7 @@ class FileTable extends FlowPanel { if (t != null) { t.onOpenRow(1 + idx); e.preventDefault(); + e.stopPropagation(); return false; } } @@ -311,11 +312,11 @@ class FileTable extends FlowPanel { } @Override - protected void onCellSingleClick(int row, int column) { - if (column == C_PATH) { + protected void onCellSingleClick(Event event, int row, int column) { + if (column == C_PATH && link.handleAsClick(event)) { onOpenRow(row); } else { - super.onCellSingleClick(row, column); + super.onCellSingleClick(event, row, column); } } } diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java index 683471aa6b..22e96edf48 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/SideBySideTable.java @@ -32,6 +32,7 @@ import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Element; +import com.google.gwt.user.client.Event; import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.HTMLTable.CellFormatter; @@ -40,6 +41,7 @@ import com.google.gwt.user.client.ui.InlineLabel; import com.google.gwt.user.client.ui.UIObject; import com.google.gwtexpui.safehtml.client.SafeHtml; import com.google.gwtexpui.safehtml.client.SafeHtmlBuilder; + import org.eclipse.jgit.diff.Edit; import java.util.ArrayList; @@ -76,8 +78,8 @@ public class SideBySideTable extends AbstractPatchContentTable { } @Override - protected void onCellSingleClick(int row, int column) { - super.onCellSingleClick(row, column); + protected void onCellSingleClick(Event event, int row, int column) { + super.onCellSingleClick(event, row, column); if (column == 1 || column == 4) { onCellDoubleClick(row, column); } diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/UnifiedDiffTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/UnifiedDiffTable.java index 82e310737f..7bc16fa055 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/UnifiedDiffTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/UnifiedDiffTable.java @@ -30,6 +30,7 @@ import com.google.gerrit.reviewdb.client.PatchLineComment; import com.google.gerrit.reviewdb.client.PatchSet; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Element; +import com.google.gwt.user.client.Event; import com.google.gwt.user.client.ui.HTMLTable.CellFormatter; import com.google.gwt.user.client.ui.UIObject; import com.google.gwtexpui.safehtml.client.SafeHtml; @@ -98,8 +99,8 @@ public class UnifiedDiffTable extends AbstractPatchContentTable { } @Override - protected void onCellSingleClick(int row, int column) { - super.onCellSingleClick(row, column); + protected void onCellSingleClick(Event event, int row, int column) { + super.onCellSingleClick(event, row, column); if (column == 1 || column == 2) { if (!"".equals(table.getText(row, column))) { onCellDoubleClick(row, column); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/NavigationTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/NavigationTable.java index 38dda06c69..3780ef811c 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/NavigationTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/NavigationTable.java @@ -53,7 +53,7 @@ public abstract class NavigationTable extends FancyFlexTable { } final int row = rowOf(td); if (getRowItem(row) != null) { - onCellSingleClick(rowOf(td), columnOf(td)); + onCellSingleClick(event, rowOf(td), columnOf(td)); return; } break; @@ -145,7 +145,7 @@ public abstract class NavigationTable extends FancyFlexTable { } /** Invoked when the user clicks on a table cell. */ - protected void onCellSingleClick(int row, int column) { + protected void onCellSingleClick(Event event, int row, int column) { movePointerTo(row); }