From: Jens Steinhauser Date: Sat, 24 May 2014 14:41:22 +0000 (+0200) Subject: CursorHeader: Do not clip away the selection. X-Git-Tag: pulseview-0.3.0~601 X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=commitdiff_plain;h=4d95ef609546490c4f981d47e4a44d097079c628 CursorHeader: Do not clip away the selection. --- diff --git a/pv/view/cursorheader.cpp b/pv/view/cursorheader.cpp index 6592acd4..a9b709f2 100644 --- a/pv/view/cursorheader.cpp +++ b/pv/view/cursorheader.cpp @@ -35,6 +35,7 @@ namespace pv { namespace view { const int CursorHeader::Padding = 20; +const int CursorHeader::BaselineOffset = 5; int CursorHeader::calculateTextHeight() { @@ -53,7 +54,7 @@ CursorHeader::CursorHeader(View &parent) : QSize CursorHeader::sizeHint() const { - return QSize(0, _textHeight + Padding); + return QSize(0, _textHeight + Padding + BaselineOffset); } void CursorHeader::clear_selection() @@ -74,7 +75,11 @@ void CursorHeader::paintEvent(QPaintEvent*) // Draw the cursors if (_view.cursors_shown()) { - _view.cursors().draw_markers(p, rect(), prefix); + // The cursor labels are not drawn with the arrows exactly on the + // bottom line of the widget, because then the selection shadow + // would be clipped away. + const QRect r = rect().adjusted(0, 0, 0, -BaselineOffset); + _view.cursors().draw_markers(p, r, prefix); } } @@ -127,8 +132,8 @@ void CursorHeader::mouseReleaseEvent(QMouseEvent *) if (!_dragging) if (shared_ptr m = _grabbed_marker.lock()) { Popup *const p = m->create_popup(&_view); - p->set_position(mapToGlobal(QPoint(m->get_x(), - height())), Popup::Bottom); + const QPoint arrpos(m->get_x(), height() - BaselineOffset); + p->set_position(mapToGlobal(arrpos), Popup::Bottom); p->show(); } diff --git a/pv/view/cursorheader.h b/pv/view/cursorheader.h index ff1759d4..d3124be9 100644 --- a/pv/view/cursorheader.h +++ b/pv/view/cursorheader.h @@ -39,6 +39,12 @@ class CursorHeader : public MarginWidget static const int Padding; + /** + * The vertical offset, relative to the bottom line of the widget, + * where the arrows of the cursor labels end. + */ + static const int BaselineOffset; + public: CursorHeader(View &parent);