+ int xPos = event->x() - margin;
+ if (!m_drag) {
+ int mousePos = qMax((int)(xPos / m_scale), 0);
+ if (qAbs(m_position * m_scale - xPos) < cursorWidth && event->y() >= m_lineHeight) {
+ // Mouse over time cursor
+ if (m_hoverKeyframe != -2) {
+ m_hoverKeyframe = -2;
+ update();
+ }
+ event->accept();
+ return;
+ }
+ if (m_geom != NULL && (event->y() < m_lineHeight)) {
+ // check if we want to move a keyframe
+ Mlt::GeometryItem item;
+ if (m_geom->next_key(&item, mousePos) == 0) {
+ if (qAbs(item.frame() * m_scale - xPos) < 4) {
+ if (m_hoverKeyframe == item.frame()) return;
+ m_hoverKeyframe = item.frame();
+ setCursor(Qt::PointingHandCursor);
+ update();
+ event->accept();
+ return;
+ }
+ }
+ }
+ if (m_hoverKeyframe != -1) {
+ m_hoverKeyframe = -1;
+ setCursor(Qt::ArrowCursor);
+ update();
+ }
+ event->accept();
+ return;
+ }