From cc721d1878fda8b4ba294fb4272e2e6a324c9976 Mon Sep 17 00:00:00 2001 From: Kevin Smith Date: Sun, 2 May 2010 14:42:48 +0000 Subject: Use cursor position to determine roster item for context menu. Resolves: #333 diff --git a/Swift/QtUI/Roster/QtTreeWidget.cpp b/Swift/QtUI/Roster/QtTreeWidget.cpp index 0933f3a..9dabc81 100644 --- a/Swift/QtUI/Roster/QtTreeWidget.cpp +++ b/Swift/QtUI/Roster/QtTreeWidget.cpp @@ -11,6 +11,7 @@ #include #include +#include namespace Swift { @@ -56,11 +57,12 @@ void QtTreeWidget::handleItemActivated(const QModelIndex& index) { } } -void QtTreeWidget::contextMenuEvent(QContextMenuEvent* /*event*/) { +void QtTreeWidget::contextMenuEvent(QContextMenuEvent* event) { if (!contextMenu_) { return; } - QtTreeWidgetItem* qtItem = static_cast(selectedIndexes()[0].internalPointer()); + QModelIndex index = indexAt(event->pos()); + QtTreeWidgetItem* qtItem = index.isValid() ? static_cast(index.internalPointer()) : NULL; if (qtItem) { contextMenu_->show(qtItem); } -- cgit v0.10.2-6-g49f6