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

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


The following commit(s) were added to refs/heads/main by this push:
     new 7dc3d1df8f Add option to disable zoom using scrolling, fixes #5160 
(#6353)
7dc3d1df8f is described below

commit 7dc3d1df8f72e57a75e04de5123902d55521929e
Author: Hans Van Akelyen <[email protected]>
AuthorDate: Mon Jan 12 18:49:33 2026 +0100

    Add option to disable zoom using scrolling, fixes #5160 (#6353)
---
 ui/src/main/java/org/apache/hop/ui/core/PropsUi.java        |  9 +++++++++
 .../perspective/configuration/tabs/ConfigGuiOptionsTab.java | 13 +++++++++++++
 .../ui/hopgui/perspective/execution/DragViewZoomBase.java   |  5 +++++
 .../hop/ui/core/dialog/messages/messages_en_US.properties   |  2 ++
 4 files changed, 29 insertions(+)

diff --git a/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java 
b/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
index b55789ecd1..a5a34c0e54 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
@@ -82,6 +82,7 @@ public class PropsUi extends Props {
   private static final String MAX_EXECUTION_LOGGING_TEXT_SIZE = 
"MaxExecutionLoggingTextSize";
   private static final String GRAPH_EXTRA_VIEW_VERTICAL_ORIENTATION =
       "GraphExtraViewVerticalOrientation";
+  private static final String DISABLE_ZOOM_SCROLLING = "DisableZoomScrolling";
 
   public static final int DEFAULT_MAX_EXECUTION_LOGGING_TEXT_SIZE = 2000000;
   private Map<RGB, RGB> contrastingColors;
@@ -1164,4 +1165,12 @@ public class PropsUi extends Props {
     formLayout.marginRight = getFormMargin();
     return formLayout;
   }
+
+  public boolean isZoomScrollingDisabled() {
+    return YES.equalsIgnoreCase(getProperty(DISABLE_ZOOM_SCROLLING, NO));
+  }
+
+  public void setZoomScrollingDisabled(boolean disabled) {
+    setProperty(DISABLE_ZOOM_SCROLLING, disabled ? YES : NO);
+  }
 }
diff --git 
a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
 
b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
index 769f3f7249..d87104f259 100644
--- 
a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
+++ 
b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/configuration/tabs/ConfigGuiOptionsTab.java
@@ -90,6 +90,7 @@ public class ConfigGuiOptionsTab {
   private Button wHideViewport;
   private Button wUseDoubleClick;
   private Button wDrawBorderAroundCanvasNames;
+  private Button wDisableZoomScrolling;
   private Button wHideMenuBar;
   private Button wShowTableViewToolbar;
   private Combo wDefaultLocale;
@@ -595,6 +596,17 @@ public class ConfigGuiOptionsTab {
             props.isBorderDrawnAroundCanvasNames(),
             lastCanvasControl,
             margin);
+    lastCanvasControl = wDrawBorderAroundCanvasNames;
+
+    // Disable zoom scrolling
+    wDisableZoomScrolling =
+        createCheckbox(
+            canvasContent,
+            "EnterOptionsDialog.DisableZoomScrolling.Label",
+            "EnterOptionsDialog.DisableZoomScrolling.ToolTip",
+            props.isZoomScrollingDisabled(),
+            lastCanvasControl,
+            margin);
 
     // Create the expand item
     ExpandItem canvasItem = new ExpandItem(canvasExpandBar, SWT.NONE);
@@ -907,6 +919,7 @@ public class ConfigGuiOptionsTab {
         !wHideViewport.getSelection()); // Inverted: checkbox is "show", 
property is "hide"
     props.setUseDoubleClickOnCanvas(wUseDoubleClick.getSelection());
     
props.setDrawBorderAroundCanvasNames(wDrawBorderAroundCanvasNames.getSelection());
+    props.setZoomScrollingDisabled(wDisableZoomScrolling.getSelection());
     props.setDarkMode(wDarkMode.getSelection());
     props.setHidingMenuBar(wHideMenuBar.getSelection());
     props.setShowTableViewToolbar(wShowTableViewToolbar.getSelection());
diff --git 
a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/execution/DragViewZoomBase.java
 
b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/execution/DragViewZoomBase.java
index 61b7f5463f..e5bc06127e 100644
--- 
a/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/execution/DragViewZoomBase.java
+++ 
b/ui/src/main/java/org/apache/hop/ui/hopgui/perspective/execution/DragViewZoomBase.java
@@ -379,6 +379,11 @@ public abstract class DragViewZoomBase extends Composite {
   }
 
   protected void mouseScrolled(MouseEvent mouseEvent) {
+    // Check if zoom scrolling is disabled
+    if (PropsUi.getInstance().isZoomScrollingDisabled()) {
+      return;
+    }
+
     // Zoom in or out every time we get an event.
     //
     // In the future we do want to take the location of the mouse into account.
diff --git 
a/ui/src/main/resources/org/apache/hop/ui/core/dialog/messages/messages_en_US.properties
 
b/ui/src/main/resources/org/apache/hop/ui/core/dialog/messages/messages_en_US.properties
index ca5dbf433b..68b90b923b 100644
--- 
a/ui/src/main/resources/org/apache/hop/ui/core/dialog/messages/messages_en_US.properties
+++ 
b/ui/src/main/resources/org/apache/hop/ui/core/dialog/messages/messages_en_US.properties
@@ -113,6 +113,8 @@ EnterOptionsDialog.DefaultPreviewSize.Label=Preview data 
batch size:
 EnterOptionsDialog.EnterNumber.Hint=Enter a number
 EnterOptionsDialog.DialogMiddlePercentage.Label=Dialog middle percentage:
 EnterOptionsDialog.DrawBorderAroundCanvasNamesOnCanvas.Label=Draw border 
around Action/Transform names on canvas
+EnterOptionsDialog.DisableZoomScrolling.Label=Disable zoom scrolling
+EnterOptionsDialog.DisableZoomScrolling.ToolTip=When enabled, the mouse scroll 
wheel will not zoom in/out on the canvas
 EnterOptionsDialog.EnableAutoCollapseCoreObjectTree.Label=Auto collapse 
palette tree
 EnterOptionsDialog.FixedWidthFont.Label=Fixed width font:
 EnterOptionsDialog.General.Label=General

Reply via email to