-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy path4341-Add-support-second-wheel-for-horizontal-scroll.patch
More file actions
49 lines (43 loc) · 2.14 KB
/
Copy path4341-Add-support-second-wheel-for-horizontal-scroll.patch
File metadata and controls
49 lines (43 loc) · 2.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: SR_team <sr_team@sr.team>
Date: Mon, 13 Jun 2022 16:38:16 +0300
Subject: [PATCH] 4341: Add support second wheel for horizontal scroll
Adding support horizontal scroll by second wheel, 4d wheel and touchpad
---
.../docking/widgets/fieldpanel/FieldPanel.java | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/FieldPanel.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/FieldPanel.java
index ad9f25af1d..83eade398f 100644
--- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/FieldPanel.java
+++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/FieldPanel.java
@@ -49,6 +49,9 @@ public class FieldPanel extends JPanel
implements IndexedScrollable, LayoutModelListener, ChangeListener {
public static final int MOUSEWHEEL_LINES_TO_SCROLL = 3;
+ public static final int MOUSEWHEEL_SCROLL_LEFT_BTN = 4;
+ public static final int MOUSEWHEEL_SCROLL_RIGHT_BTN = 5;
+
private LayoutModel model;
private boolean repaintPosted;
@@ -1364,6 +1367,21 @@ public class FieldPanel extends JPanel
l.buttonPressed(loc, field, ev);
}
});
+ if ((ev.getButton() == MOUSEWHEEL_SCROLL_LEFT_BTN || ev.getButton() == MOUSEWHEEL_SCROLL_RIGHT_BTN)
+ && horizontalScrollingEnabled) {
+ int wheelRotation = (ev.getButton() == MOUSEWHEEL_SCROLL_LEFT_BTN ? -1 : 1);
+ Layout firstLayout = model.getLayout(BigInteger.ZERO);
+ int layoutScrollHt = firstLayout != null //
+ ? firstLayout.getScrollableUnitIncrement(0, 1)
+ : 0;
+ int scrollAmount = wheelRotation * layoutScrollHt * MOUSEWHEEL_LINES_TO_SCROLL;
+ MouseWheelEvent wev = new MouseWheelEvent(ev.getComponent(),ev.getID(), ev.getWhen(),
+ InputEvent.SHIFT_DOWN_MASK, ev.getX(), ev.getY(), ev.getClickCount(), ev.isPopupTrigger(),
+ MouseWheelEvent.WHEEL_UNIT_SCROLL, scrollAmount, wheelRotation);
+ for (int i = 0; i < getMouseWheelListeners().length; i++) {
+ getMouseWheelListeners()[i].mouseWheelMoved(wev);
+ }
+ }
}
private JViewport getViewport() {
--
2.45.1