summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp
diff options
context:
space:
mode:
authorPierre Bourdon <delroth@gmail.com>2018-08-20 21:41:54 +0200
committerGitHub <noreply@github.com>2018-08-20 21:41:54 +0200
commitd44087128edff4aac935c9be8fc6753435db922a (patch)
tree828427eac5d5be5320d126acedf145556feb3ccf /Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp
parent183fb9bf6a236066c5bff429603ed1b342d353ab (diff)
parent5b992f138bd7bbf07693b012c567a593b87236d8 (diff)
Merge pull request #7342 from spycrab/qt_dbg_scroll
Qt/Debugger: Improve scrolling
Diffstat (limited to 'Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp')
-rw-r--r--Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp
index df3a897167..bab9daa522 100644
--- a/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp
+++ b/Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp
@@ -22,6 +22,10 @@
#include "DolphinQt/Resources.h"
#include "DolphinQt/Settings.h"
+// "Most mouse types work in steps of 15 degrees, in which case the delta value is a multiple of
+// 120; i.e., 120 units * 1/8 = 15 degrees." (http://doc.qt.io/qt-5/qwheelevent.html#angleDelta)
+constexpr double SCROLL_FRACTION_DEGREES = 15.;
+
MemoryViewWidget::MemoryViewWidget(QWidget* parent) : QTableWidget(parent)
{
horizontalHeader()->hide();
@@ -236,11 +240,11 @@ void MemoryViewWidget::keyPressEvent(QKeyEvent* event)
switch (event->key())
{
case Qt::Key_Up:
- m_address -= 3 * 16;
+ m_address -= 16;
Update();
return;
case Qt::Key_Down:
- m_address += 3 * 16;
+ m_address += 16;
Update();
return;
case Qt::Key_PageUp:
@@ -297,9 +301,13 @@ void MemoryViewWidget::ToggleBreakpoint()
void MemoryViewWidget::wheelEvent(QWheelEvent* event)
{
- int delta = event->delta() > 0 ? -1 : 1;
+ auto delta =
+ -static_cast<int>(std::round((event->angleDelta().y() / (SCROLL_FRACTION_DEGREES * 8))));
+
+ if (delta == 0)
+ return;
- m_address += delta * 3 * 16;
+ m_address += delta * 16;
Update();
}