diff --git a/src/LTMPlot.cpp b/src/LTMPlot.cpp index 9243e2c90..d3df421bc 100644 --- a/src/LTMPlot.cpp +++ b/src/LTMPlot.cpp @@ -2845,16 +2845,18 @@ LTMPlot::eventFilter(QObject *obj, QEvent *event) { // when clicking on a legend item, toggle if the curve is visible - if (event->type() == QEvent::MouseButtonPress) { + if (obj == legend() && event->type() == QEvent::MouseButtonPress) { bool replotNeeded = false; QwtLegend *l = static_cast(this->legend()); + QPoint pos = QCursor::pos(); foreach(QwtPlotCurve *p, curves) { foreach (QWidget *w, l->legendWidgets(itemToInfo(p))) { - if (w->underMouse()) { - //XXX this is a bit broken on a Mac (at least) - //XXX qDebug()<<"under mouse="<(w)->text().text(); + if (QRect(l->mapToGlobal(w->geometry().topLeft()), + l->mapToGlobal(w->geometry().bottomRight())).contains(pos)) { + + //qDebug()<<"under mouse="<(w)->text().text(); for(int m=0; m< settings->metrics.count(); m++) { if (settings->metrics[m].curve == p) { settings->metrics[m].hidden = !settings->metrics[m].hidden;