Skip to content

Commit f62d070

Browse files
committed
GUI: faster mouse wheel scrolling + more responsive GUI (hopefully without other things breaking)
1 parent 5230ba3 commit f62d070

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed

x64_dbg_gui/Project/Src/BasicView/AbstractTableView.cpp

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ AbstractTableView::AbstractTableView(QWidget* parent) : QAbstractScrollArea(pare
3434
memset(&mScrollBarAttributes, 0, sizeof(mScrollBarAttributes));
3535
horizontalScrollBar()->setRange(0, 0);
3636
horizontalScrollBar()->setPageStep(650);
37-
37+
mMouseWheelScrollDelta = 4;
3838
setMouseTracking(true);
3939

4040
// Signals/Slots Connections
@@ -376,17 +376,18 @@ void AbstractTableView::mouseReleaseEvent(QMouseEvent* event)
376376
*/
377377
void AbstractTableView::wheelEvent(QWheelEvent* event)
378378
{
379-
//qDebug() << "wheelEvent";
379+
int numDegrees = event->delta() / 8;
380+
int numSteps = numDegrees / 15;
380381

381-
if(event->delta() > 0)
382+
if(numSteps > 0)
382383
{
383-
verticalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepSub);
384-
verticalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepSub);
384+
for(int i = 0; i < mMouseWheelScrollDelta * numSteps; i++)
385+
verticalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepSub);
385386
}
386387
else
387388
{
388-
verticalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepAdd);
389-
verticalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepAdd);
389+
for(int i = 0; i < mMouseWheelScrollDelta * numSteps * -1; i++)
390+
verticalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepAdd);
390391
}
391392
}
392393

@@ -496,7 +497,9 @@ void AbstractTableView::vertSliderActionSlot(int action)
496497

497498
// Call the hook (Usefull for disassembly)
498499
mTableOffset = sliderMovedHook(action, mTableOffset, wDelta);
499-
emit tableOffsetChanged(mTableOffset);
500+
501+
//this emit causes massive lag in the GUI
502+
//emit tableOffsetChanged(mTableOffset);
500503

501504
// Scale the new table offset to the 32bits scrollbar range
502505
#ifdef _WIN64
@@ -505,7 +508,8 @@ void AbstractTableView::vertSliderActionSlot(int action)
505508
wNewScrollBarValue = mTableOffset;
506509
#endif
507510

508-
emit repainted();
511+
//this emit causes massive lag in the GUI
512+
//emit repainted();
509513

510514
// Update scrollbar attributes
511515
verticalScrollBar()->setValue(wNewScrollBarValue);

x64_dbg_gui/Project/Src/BasicView/AbstractTableView.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ public slots:
167167

168168
int_t mRowCount;
169169

170+
int mMouseWheelScrollDelta;
170171

171172
int_t mTableOffset;
172173
Header_t mHeader;

x64_dbg_gui/Project/Src/Gui/CPUDisassembly.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -577,7 +577,7 @@ void CPUDisassembly::toggleInt3BPAction()
577577
}
578578

579579
DbgCmdExec(wCmd.toUtf8().constData());
580-
emit Disassembly::repainted();
580+
//emit Disassembly::repainted();
581581
}
582582

583583

0 commit comments

Comments
 (0)