- //kDebug()<<"// GROUP NEW T:"<<newTrack<<",START T:"<<startTrack<<",MAX:"<<projectScene()->tracksCount() - 1;
- newTrack = qMin(newTrack, projectScene()->tracksCount() - (int)(boundingRect().height() + 5) / trackHeight);
- newTrack = qMax(newTrack, 0);
+ int realTrack = (start.y() + newPos.y() - pos().y()) / trackHeight;
+ int proposedTrack = newPos.y() / trackHeight;
+
+ int correctedTrack = qMin(realTrack, projectScene()->tracksCount() - (int)(boundingRect().height() + 5) / trackHeight);
+ correctedTrack = qMax(correctedTrack, 0);
+
+ proposedTrack += (correctedTrack - realTrack);