From 99029fda9b736c04eb2c22c92ca5086fb948bc13 Mon Sep 17 00:00:00 2001 From: Soeren Apel Date: Fri, 12 Dec 2014 17:32:06 +0100 Subject: [PATCH 1/1] DecodeTrace: Correct row calculation/tooltip position for row 0 --- pv/view/decodetrace.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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); } -- 2.30.2