Skip to content

Commit f3e0a4e

Browse files
dl471mrexodia
authored andcommitted
Scroll to keep selected register in view
1 parent 21d03ce commit f3e0a4e

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/gui/Src/Gui/RegistersView.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1794,6 +1794,7 @@ void RegistersView::keyPressEvent(QKeyEvent* event)
17941794
if(newRegister != UNKNOWN)
17951795
{
17961796
mSelected = newRegister;
1797+
ensureRegisterVisible(newRegister);
17971798
emit refresh();
17981799
}
17991800
}
@@ -3759,3 +3760,15 @@ void RegistersView::disasmSelectionChangedSlot(dsint va)
37593760
mHighlightRegs = mParent->getDisasmWidget()->DisassembleAt(va - mParent->getDisasmWidget()->getBase()).regsReferenced;
37603761
emit refresh();
37613762
}
3763+
3764+
void RegistersView::ensureRegisterVisible(REGISTER_NAME reg)
3765+
{
3766+
QScrollArea* upperScrollArea = (QScrollArea*)this->parentWidget()->parentWidget();
3767+
3768+
int ySpace = yTopSpacing;
3769+
if(mVScrollOffset != 0)
3770+
ySpace = 0;
3771+
int y = mRowHeight * (mRegisterPlaces[reg].line + mVScrollOffset) + ySpace;
3772+
3773+
upperScrollArea->ensureVisible(0, y);
3774+
}

src/gui/Src/Gui/RegistersView.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ public slots:
183183
void CreateDumpNMenu(QMenu* dumpMenu);
184184

185185
void displayEditDialog();
186+
void ensureRegisterVisible(REGISTER_NAME reg);
186187

187188
protected slots:
188189
void fontsUpdatedSlot();

0 commit comments

Comments
 (0)