diff --git a/app/src/main/groovy/org/jd/gui/view/component/panel/TabbedPanel.groovy b/app/src/main/groovy/org/jd/gui/view/component/panel/TabbedPanel.groovy index 6d8a8b8f..1b7a9452 100644 --- a/app/src/main/groovy/org/jd/gui/view/component/panel/TabbedPanel.groovy +++ b/app/src/main/groovy/org/jd/gui/view/component/panel/TabbedPanel.groovy @@ -15,6 +15,7 @@ import javax.swing.JComponent import javax.swing.JMenu import javax.swing.JMenuItem import javax.swing.JPopupMenu +import javax.swing.SwingUtilities import javax.swing.ToolTipManager import javax.swing.event.ChangeEvent import java.awt.BorderLayout @@ -31,7 +32,6 @@ import javax.swing.ImageIcon import javax.swing.JLabel import javax.swing.JPanel import javax.swing.JTabbedPane -import java.awt.event.MouseAdapter import java.awt.event.MouseEvent import java.awt.event.MouseListener @@ -70,7 +70,7 @@ class TabbedPanel extends JPanel implements PreferencesChangeListener { } } ToolTipManager.sharedInstance().registerComponent(tabPanel) - tabPanel.addMouseListener(new MouseAdapter() { + tabPanel.addMouseListener(new MouseListener() { void mousePressed(MouseEvent e) { showPopupTabMenu(e) } void mouseReleased(MouseEvent e) { showPopupTabMenu(e) } void showPopupTabMenu(MouseEvent e) { @@ -81,6 +81,14 @@ class TabbedPanel extends JPanel implements PreferencesChangeListener { } } } + void mouseEntered(MouseEvent e) {} + void mouseExited(MouseEvent e) {} + void mouseClicked(MouseEvent e) { + int index = tabPanel.indexAtLocation(e.x, e.y) + if (index != -1 && SwingUtilities.isMiddleMouseButton(e)) { + removeComponent(tabPanel.getComponentAt(index)) + } + } }) return tabPanel }