Skip to content

Commit ab29174

Browse files
authored
Show correct context menu through Menu key (#3550)
1 parent f338901 commit ab29174

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

src/widgets/DisassemblerGraphView.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -899,9 +899,17 @@ void DisassemblerGraphView::blockContextMenuRequested(GraphView::GraphBlock &blo
899899

900900
void DisassemblerGraphView::contextMenuEvent(QContextMenuEvent *event)
901901
{
902+
if (event->reason() == QContextMenuEvent::Keyboard) {
903+
auto *db = blockForAddress(seekable->getOffset());
904+
if (db) {
905+
auto gb = blocks[db->entry];
906+
blockContextMenuRequested(gb, event, QPoint());
907+
return;
908+
}
909+
}
910+
902911
GraphView::contextMenuEvent(event);
903912
if (!event->isAccepted()) {
904-
// TODO: handle opening block menu using keyboard
905913
contextMenu->exec(event->globalPos());
906914
event->accept();
907915
}

src/widgets/DisassemblyWidget.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,17 @@ void DisassemblyWidget::keyPressEvent(QKeyEvent *event)
690690
MemoryDockWidget::keyPressEvent(event);
691691
}
692692

693+
void DisassemblyWidget::contextMenuEvent(QContextMenuEvent *event)
694+
{
695+
if (event->reason() == QContextMenuEvent::Keyboard) {
696+
showDisasContextMenu(event->pos());
697+
event->accept();
698+
return;
699+
}
700+
701+
MemoryDockWidget::contextMenuEvent(event);
702+
}
703+
693704
QString DisassemblyWidget::getWindowTitle() const
694705
{
695706
return tr("Disassembly");

src/widgets/DisassemblyWidget.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ protected slots:
9393
RVA readCurrentDisassemblyOffset();
9494
bool eventFilter(QObject *obj, QEvent *event) override;
9595
void keyPressEvent(QKeyEvent *event) override;
96+
void contextMenuEvent(QContextMenuEvent *event) override;
9697
QString getWindowTitle() const override;
9798

9899
int topOffsetHistoryPos = 0;

0 commit comments

Comments
 (0)