X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=sigview.cpp;h=4097ae5c25fe1f316b4cd9359dbe44b79bd8a8cf;hp=df1eefec2745fec15041766a4777d086d6e114eb;hb=fb0d32cb540e2ae39d80f7eab02779fb965d9f46;hpb=7cd5faf8cfed1871195aed7a4c325342172944b3 diff --git a/sigview.cpp b/sigview.cpp index df1eefec..4097ae5c 100644 --- a/sigview.cpp +++ b/sigview.cpp @@ -35,7 +35,7 @@ const int SigView::SignalHeight = 50; SigView::SigView(SigSession &session, QWidget *parent) : QGLWidget(parent), _session(session), - _scale(1000000000ULL), + _scale(1e-6), _offset(0) { connect(&_session, SIGNAL(dataUpdated()), @@ -98,17 +98,21 @@ void SigView::mouseReleaseEvent(QMouseEvent *event) { assert(event); + const double cursor_offset = _offset + _scale * (double)event->x(); + switch(event->button()) { case Qt::LeftButton: - _scale = (_scale * 2) / 3; + _scale *= 2.0 / 3.0; break; case Qt::RightButton: - _scale = (_scale * 3) / 2; + _scale *= 3.0 / 2.0; break; } + _offset = cursor_offset - _scale * (double)event->x(); + updateGL(); }