Меня появляется не там где нужно.
void contextMenuEvent(QContextMenuEvent* e);
со всеми вытекающими. Контестное меню начало появятся где надо. Почему же стандартный способ не пашет? Бага?!
QPoint globalPos = listWidget->viewport()->mapToGlobal(pos);
...