diff mbox series

[1/1] kernel-shark: Use mouse wheel to scroll the graphs

Message ID 20210125140539.1029915-2-y.karadz@gmail.com (mailing list archive)
State Accepted
Commit 5e343cb5740e255ef1644ba9e8ba609e5a0a7e21
Headers show
Series kernel-shark v1 changed. | expand

Commit Message

Yordan Karadzhov Jan. 25, 2021, 2:05 p.m. UTC
The current zoom-in/zoom-out function of the mouse wheel will be
performed only when rolling the mouse wheel and simultaneously
pressing "Ctrl", while just rolling the wheel will move you up or
down in the scroll area of the graphs without zooming.

We want to introduce the change because zoom via Ctrl+ScrollWheel
is a binding familiar from the Web Browsers.

Suggested-by: FeRD (Frank Dana) <ferdnyc@gmail.com>
Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
---
 kernel-shark/src/KsGLWidget.cpp   | 3 ++-
 kernel-shark/src/KsTraceGraph.hpp | 5 ++++-
 2 files changed, 6 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/kernel-shark/src/KsGLWidget.cpp b/kernel-shark/src/KsGLWidget.cpp
index 78ded33..404f0d0 100644
--- a/kernel-shark/src/KsGLWidget.cpp
+++ b/kernel-shark/src/KsGLWidget.cpp
@@ -266,7 +266,8 @@  void KsGLWidget::wheelEvent(QWheelEvent * event)
 {
 	int zoomFocus;
 
-	if (isEmpty())
+	if (QApplication::keyboardModifiers() != Qt::ControlModifier ||
+	    isEmpty())
 		return;
 
 	if (_mState->activeMarker()._isSet &&
diff --git a/kernel-shark/src/KsTraceGraph.hpp b/kernel-shark/src/KsTraceGraph.hpp
index 0eeef14..15ade42 100644
--- a/kernel-shark/src/KsTraceGraph.hpp
+++ b/kernel-shark/src/KsTraceGraph.hpp
@@ -28,7 +28,10 @@  public:
 	 * Reimplemented handler for mouse wheel events. All mouse wheel
 	 * events will be ignored.
 	 */
-	void wheelEvent(QWheelEvent *evt) {evt->ignore();}
+	void wheelEvent(QWheelEvent *evt) {
+		if (QApplication::keyboardModifiers() != Qt::ControlModifier)
+			QScrollArea::wheelEvent(evt);
+	}
 };
 
 /**