Skip to content

Commit a34fa40

Browse files
author
Yappa
committed
Fix "return" key in disassembler widget (rizinorg#3090)
1 parent 68ec5a3 commit a34fa40

File tree

4 files changed

+24
-1
lines changed

4 files changed

+24
-1
lines changed

src/common/DisassemblyPreview.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -89,3 +89,13 @@ RVA DisassemblyPreview::readDisassemblyOffset(QTextCursor tc)
8989

9090
return userData->line.offset;
9191
}
92+
93+
RVA DisassemblyPreview::readDisassemblyArrow(QTextCursor tc)
94+
{
95+
auto userData = getUserData(tc.block());
96+
if (!userData && userData->line.arrow != RVA_INVALID) {
97+
return RVA_INVALID;
98+
}
99+
100+
return userData->line.arrow;
101+
}

src/common/DisassemblyPreview.h

+6
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,11 @@ bool showDisasPreview(QWidget *parent, const QPoint &pointOfEvent, const RVA off
4141
* @return The disassembly offset of the hovered asm text
4242
*/
4343
RVA readDisassemblyOffset(QTextCursor tc);
44+
45+
/*!
46+
* @brief Reads the arrow offset for the cursor position
47+
* @return The jump address of the hovered asm text
48+
*/
49+
RVA readDisassemblyArrow(QTextCursor tc);
4450
}
4551
#endif

src/widgets/DisassemblyWidget.cpp

+7-1
Original file line numberDiff line numberDiff line change
@@ -617,6 +617,12 @@ void DisassemblyWidget::jumpToOffsetUnderCursor(const QTextCursor &cursor)
617617
seekable->seekToReference(offset);
618618
}
619619

620+
void DisassemblyWidget::jumpToArrowOffsetUnderCursor(const QTextCursor &cursor)
621+
{
622+
RVA offset = DisassemblyPreview::readDisassemblyArrow(cursor);
623+
seekable->seek(offset);
624+
}
625+
620626
bool DisassemblyWidget::eventFilter(QObject *obj, QEvent *event)
621627
{
622628
if (event->type() == QEvent::MouseButtonDblClick
@@ -647,7 +653,7 @@ void DisassemblyWidget::keyPressEvent(QKeyEvent *event)
647653
{
648654
if (event->key() == Qt::Key_Return) {
649655
const QTextCursor cursor = mDisasTextEdit->textCursor();
650-
jumpToOffsetUnderCursor(cursor);
656+
jumpToArrowOffsetUnderCursor(cursor);
651657
}
652658

653659
MemoryDockWidget::keyPressEvent(event);

src/widgets/DisassemblyWidget.h

+1
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ protected slots:
9999
void moveCursorRelative(bool up, bool page);
100100

101101
void jumpToOffsetUnderCursor(const QTextCursor &);
102+
void jumpToArrowOffsetUnderCursor(const QTextCursor &);
102103
};
103104

104105
class DisassemblyScrollArea : public QAbstractScrollArea

0 commit comments

Comments
 (0)