--destIndex;
}
+ unsigned int currentWpIndex = currentWaypoint();
WayptRef w(_rm->removeWayptAtIndex(srcIndex));
SG_LOG(SG_GENERAL, SG_INFO, "wpt:" << w->ident());
_rm->insertWayptAtIndex(w, destIndex);
+
+ if (srcIndex == currentWpIndex) {
+ // current waypoint was moved
+ _rm->jumpToIndex(destIndex);
+ }
}
virtual void setUpdateCallback(SGCallback* cb)
} // of valid wp altitude
x += 60 + PUSTR_LGAP;
- if (wp->speedRestriction() != RESTRICT_NONE) {
+ if (wp->speedRestriction() == SPEED_RESTRICT_MACH) {
+ count = ::snprintf(buffer, 126, "%03.2fM", wp->speedMach());
+ f->drawString(buffer, x, yy);
+ } else if (wp->speedRestriction() != RESTRICT_NONE) {
count = ::snprintf(buffer, 126, "%dKts", (int) wp->speedKts());
f->drawString(buffer, x, yy);
}