]> sigrok.org Git - pulseview.git/blobdiff - pv/views/trace/decodetrace.cpp
SignalBase: Don't check for signal types, check based on data
[pulseview.git] / pv / views / trace / decodetrace.cpp
index d9b4691b310e883816a4bfd373cf93644608708a..93c7c5a93cdd3bae6af7db425b612e12618ab200 100644 (file)
@@ -161,7 +161,8 @@ DecodeTrace::DecodeTrace(pv::Session &session,
 
        // Determine shortest string we want to see displayed in full
        QFontMetrics m(QApplication::font());
-       min_useful_label_width_ = m.width("XX"); // e.g. two hex characters
+       // e.g. two hex characters
+       min_useful_label_width_ = util::text_width(m, "XX");
 
        default_row_height_ = (ViewItemPaintParams::text_height() * 6) / 4;
        annotation_height_ = (ViewItemPaintParams::text_height() * 5) / 4;
@@ -612,9 +613,12 @@ void DecodeTrace::hover_point_changed(const QPoint &hp)
                r.expand_marker_highlighted = false;
 
        if (hover_row) {
-               int row_y = get_row_y(hover_row);
+               const pair<int, int> extents = v_extents();
+               const int trace_top = get_visual_y() + extents.first;
+               const int trace_btm = get_visual_y() + extents.second;
+
                if ((hp.x() > 0) && (hp.x() < (int)(ArrowSize + 3 + hover_row->title_width)) &&
-                       (hp.y() > (int)(row_y - ArrowSize)) && (hp.y() < (int)(row_y + ArrowSize))) {
+                       (hp.y() > trace_top) && (hp.y() < trace_btm)) {
 
                        hover_row->expand_marker_highlighted = true;
                        show_hidden_rows_ = true;