From cc721d1878fda8b4ba294fb4272e2e6a324c9976 Mon Sep 17 00:00:00 2001
From: Kevin Smith <git@kismith.co.uk>
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 <qdebug.h>
 #include <QMenu>
+#include <QContextMenuEvent>
 
 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<QtTreeWidgetItem*>(selectedIndexes()[0].internalPointer());
+	QModelIndex index = indexAt(event->pos());
+	QtTreeWidgetItem* qtItem = index.isValid() ? static_cast<QtTreeWidgetItem*>(index.internalPointer()) : NULL;
 	if (qtItem) {
 		contextMenu_->show(qtItem);
 	}
-- 
cgit v0.10.2-6-g49f6