From 5f9c9c21a217bf2b4f8104ddf173b5513c22e244 Mon Sep 17 00:00:00 2001 From: Anto Leherbauer Date: Tue, 24 Feb 2015 11:16:17 +0100 Subject: [PATCH] Terminals: Bug 443048 - Can't use Middle click to close shell Tabs inside Terminal View --- .../tcf/te/ui/terminals/view/TerminalsView.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/plugins/org.eclipse.tcf.te.ui.terminals/src/org/eclipse/tcf/te/ui/terminals/view/TerminalsView.java b/plugins/org.eclipse.tcf.te.ui.terminals/src/org/eclipse/tcf/te/ui/terminals/view/TerminalsView.java index a303c95570c..cc4bbf576a9 100644 --- a/plugins/org.eclipse.tcf.te.ui.terminals/src/org/eclipse/tcf/te/ui/terminals/view/TerminalsView.java +++ b/plugins/org.eclipse.tcf.te.ui.terminals/src/org/eclipse/tcf/te/ui/terminals/view/TerminalsView.java @@ -39,7 +39,10 @@ import org.eclipse.swt.dnd.DropTargetListener; import org.eclipse.swt.dnd.Transfer; import org.eclipse.swt.dnd.TransferData; import org.eclipse.swt.events.DisposeListener; +import org.eclipse.swt.events.MouseAdapter; +import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; @@ -476,7 +479,7 @@ public class TerminalsView extends ViewPart implements ITerminalsView, IShowInTa * * @param tabFolder The tab folder control. Must not be null. */ - protected void doConfigureTabFolderControl(CTabFolder tabFolder) { + protected void doConfigureTabFolderControl(final CTabFolder tabFolder) { Assert.isNotNull(tabFolder); // Set the layout data @@ -494,6 +497,18 @@ public class TerminalsView extends ViewPart implements ITerminalsView, IShowInTa // Set the tab style from the global preferences tabFolder.setSimple(PlatformUI.getPreferenceStore().getBoolean(IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS)); + + // Attach the mouse listener + tabFolder.addMouseListener(new MouseAdapter() { + @Override + public void mouseDown(MouseEvent e) { + if (e.button == 2) { + // middle mouse button click - close tab + CTabItem item = tabFolder.getItem(new Point(e.x, e.y)); + if (item != null) item.dispose(); + } + } + }); } /**