This is an automated email from the ASF dual-hosted git repository.

hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hop.git


The following commit(s) were added to refs/heads/master by this push:
     new f02054abf5 Fix #2081 : Close tab with middle button
     new 11657440b2 Merge pull request #2103 from nadment/2081
f02054abf5 is described below

commit f02054abf5b9d9b74abd12fcd6d62059fd88cf75
Author: Nicolas Adment <[email protected]>
AuthorDate: Thu Dec 22 20:50:39 2022 +0100

    Fix #2081 : Close tab with middle button
---
 .../apache/hop/ui/hopgui/perspective/TabCloseHandler.java | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git 
a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/TabCloseHandler.java 
b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/TabCloseHandler.java
index 7671723e1a..7e1c97e513 100644
--- a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/TabCloseHandler.java
+++ b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/TabCloseHandler.java
@@ -40,6 +40,7 @@ public class TabCloseHandler {
         Menu menu = new Menu(tabFolder);
         tabFolder.setMenu(menu);
         tabFolder.addListener(SWT.MenuDetect, event -> 
handleTabMenuDetectEvent(event));
+        tabFolder.addListener(SWT.MouseUp, event -> handleMouseUp(event, 
tabClosablePerspective));
 
         // Create menu item
         MenuItem miClose = new MenuItem(menu, SWT.NONE);
@@ -84,6 +85,20 @@ public class TabCloseHandler {
                 tabClosablePerspective.closeTab(null, tabItem)));
     }
 
+    private void handleMouseUp(Event event, TabClosable 
tabClosablePerspective) {
+      
+      // Middle button close tab
+      if (event.button == 2) {
+        Point point = new Point(event.x, event.y); 
+        CTabItem item = tabFolder.getItem(point);
+        if (item != null) {
+          tabClosablePerspective.closeTab(null, item);
+        }
+      }
+
+      event.doit = false;
+    }
+    
     private void handleTabMenuDetectEvent(Event event) {
         Point point = 
tabFolder.toControl(tabFolder.getDisplay().getCursorLocation());
         selectedItem = tabFolder.getItem(new Point(point.x, point.y));

Reply via email to