From eebac54760c1d93548568967bd44953bba353eaa Mon Sep 17 00:00:00 2001
From: Daniel Schramm <xschramm@fi.muni.cz>
Date: Sun, 10 Oct 2021 16:18:56 +0200
Subject: [PATCH] Slider mouse events redirected to the text field

---
 .../analyst/core/ControlPanelBuilder.java     | 54 +++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/GUI/src/main/java/cz/fidentis/analyst/core/ControlPanelBuilder.java b/GUI/src/main/java/cz/fidentis/analyst/core/ControlPanelBuilder.java
index 56a92405..ae69b514 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/core/ControlPanelBuilder.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/core/ControlPanelBuilder.java
@@ -7,6 +7,9 @@ import java.awt.GridBagLayout;
 import java.awt.Insets;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseWheelEvent;
 import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.NumberFormat;
@@ -462,6 +465,57 @@ public class ControlPanelBuilder {
             }
             inputField.postActionEvent(); // invoke textField action listener
         });
+        slider.addMouseListener(
+                new MouseAdapter() {
+                    @Override
+                    public void mouseMoved(MouseEvent e) {
+                        e.setSource(inputField);
+                        inputField.dispatchEvent(e);
+                    }
+
+                    @Override
+                    public void mouseDragged(MouseEvent e) {
+                        e.setSource(inputField);
+                        inputField.dispatchEvent(e);
+                    }
+
+                    @Override
+                    public void mouseWheelMoved(MouseWheelEvent e) {
+                        e.setSource(inputField);
+                        inputField.dispatchEvent(e);
+                    }
+
+                    @Override
+                    public void mouseExited(MouseEvent e) {
+                        e.setSource(inputField);
+                        inputField.dispatchEvent(e);
+                    }
+
+                    @Override
+                    public void mouseEntered(MouseEvent e) {
+                        e.setSource(inputField);
+                        inputField.dispatchEvent(e);
+                    }
+
+                    @Override
+                    public void mouseReleased(MouseEvent e) {
+                        e.setSource(inputField);
+                        inputField.dispatchEvent(e);
+                    }
+
+                    @Override
+                    public void mousePressed(MouseEvent e) {
+                        e.setSource(inputField);
+                        inputField.dispatchEvent(e);
+                    }
+
+                    @Override
+                    public void mouseClicked(MouseEvent e) {
+                        e.setSource(inputField);
+                        inputField.dispatchEvent(e);
+                    }
+                }
+        );
         
         inputField.addActionListener((ActionEvent ae) -> {
             if (max == -1) { // percents in [0,1]
-- 
GitLab