X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FGUI%2FWaypointList.cxx;h=4f9d68b13af2cecd50797d313752d6b4d1147f90;hb=9bd00a62facf50830e4eeccfbf8ce57f4c1f444f;hp=31c5e480c57ad46ddbd909fb3c10109b0188849f;hpb=b847ca6026314131cea5f34bcb6abc9a9c5435a7;p=flightgear.git diff --git a/src/GUI/WaypointList.cxx b/src/GUI/WaypointList.cxx index 31c5e480c..4f9d68b13 100644 --- a/src/GUI/WaypointList.cxx +++ b/src/GUI/WaypointList.cxx @@ -83,9 +83,15 @@ public: --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) @@ -467,7 +473,10 @@ void WaypointList::drawRow(int dx, int dy, int rowIndex, int y) } // 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); }