Skip to content

Commit fcee004

Browse files
committed
Add "close on middle mouse click on the tab" support
1 parent acd511f commit fcee004

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

app/src/main/groovy/org/jd/gui/view/component/panel/TabbedPanel.groovy

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import javax.swing.JComponent
1515
import javax.swing.JMenu
1616
import javax.swing.JMenuItem
1717
import javax.swing.JPopupMenu
18+
import javax.swing.SwingUtilities
1819
import javax.swing.ToolTipManager
1920
import javax.swing.event.ChangeEvent
2021
import java.awt.BorderLayout
@@ -31,7 +32,6 @@ import javax.swing.ImageIcon
3132
import javax.swing.JLabel
3233
import javax.swing.JPanel
3334
import javax.swing.JTabbedPane
34-
import java.awt.event.MouseAdapter
3535
import java.awt.event.MouseEvent
3636
import java.awt.event.MouseListener
3737

@@ -70,7 +70,7 @@ class TabbedPanel extends JPanel implements PreferencesChangeListener {
7070
}
7171
}
7272
ToolTipManager.sharedInstance().registerComponent(tabPanel)
73-
tabPanel.addMouseListener(new MouseAdapter() {
73+
tabPanel.addMouseListener(new MouseListener() {
7474
void mousePressed(MouseEvent e) { showPopupTabMenu(e) }
7575
void mouseReleased(MouseEvent e) { showPopupTabMenu(e) }
7676
void showPopupTabMenu(MouseEvent e) {
@@ -81,6 +81,14 @@ class TabbedPanel extends JPanel implements PreferencesChangeListener {
8181
}
8282
}
8383
}
84+
void mouseEntered(MouseEvent e) {}
85+
void mouseExited(MouseEvent e) {}
86+
void mouseClicked(MouseEvent e) {
87+
int index = tabPanel.indexAtLocation(e.x, e.y)
88+
if (index != -1 && SwingUtilities.isMiddleMouseButton(e)) {
89+
removeComponent(tabPanel.getComponentAt(index))
90+
}
91+
}
8492
})
8593
return tabPanel
8694
}

0 commit comments

Comments
 (0)