From: Soeren Apel Date: Fri, 12 Dec 2014 16:32:06 +0000 (+0100) Subject: DecodeTrace: Correct row calculation/tooltip position for row 0 X-Git-Tag: pulseview-0.3.0~367 X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=commitdiff_plain;h=99029fda9b736c04eb2c22c92ca5086fb948bc13 DecodeTrace: Correct row calculation/tooltip position for row 0 --- diff --git a/pv/view/decodetrace.cpp b/pv/view/decodetrace.cpp index 0a2afbfa..71fbaa85 100644 --- a/pv/view/decodetrace.cpp +++ b/pv/view/decodetrace.cpp @@ -556,9 +556,15 @@ int DecodeTrace::get_row_at_point(const QPoint &point) if (!row_height_) return -1; - const int row = (point.y() - get_visual_y() + row_height_ / 2) / - row_height_; - if (row < 0 || row >= (int)visible_rows_.size()) + const int y = (point.y() - get_visual_y() + row_height_ / 2); + + /* Integer divison of (x-1)/x would yield 0, so we check for this. */ + if (y < 0) + return -1; + + const int row = y / row_height_; + + if (row >= (int)visible_rows_.size()) return -1; return row; @@ -621,7 +627,7 @@ void DecodeTrace::hover_point_changed() hp.setY(get_visual_y() - (row_height_ / 2) + (hover_row * row_height_) - - row_height_ - text_size.height()); + row_height_ - text_size.height() - padding); QToolTip::showText(view->viewport()->mapToGlobal(hp), ann); }