From 405539791524847ce28e24e0513de8203ac12586 Mon Sep 17 00:00:00 2001 From: fonsinchen Date: Sat, 15 Feb 2014 12:19:46 +0000 Subject: (svn r26338) -Fix [FS#5908]: Don't redraw the link graph overlay if it's empty (MJP) --- src/main_gui.cpp | 14 ++++++++++---- src/viewport.cpp | 22 ++++++++++++---------- 2 files changed, 22 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/main_gui.cpp b/src/main_gui.cpp index 350439ce1..9d13deef6 100644 --- a/src/main_gui.cpp +++ b/src/main_gui.cpp @@ -253,11 +253,17 @@ struct MainWindow : Window virtual void OnTick() { - if (--refresh == 0) { - this->viewport->overlay->RebuildCache(); - this->GetWidget(WID_M_VIEWPORT)->SetDirty(this); - this->refresh = LINKGRAPH_REFRESH_PERIOD; + if (--this->refresh > 0) return; + + this->refresh = LINKGRAPH_REFRESH_PERIOD; + + if (this->viewport->overlay->GetCargoMask() == 0 || + this->viewport->overlay->GetCompanyMask() == 0) { + return; } + + this->viewport->overlay->RebuildCache(); + this->GetWidget(WID_M_VIEWPORT)->SetDirty(this); } virtual void OnPaint() diff --git a/src/viewport.cpp b/src/viewport.cpp index b80882270..c3ccea873 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -1477,17 +1477,19 @@ void ViewportDoDraw(const ViewPort *vp, int left, int top, int right, int bottom dp.height = UnScaleByZoom(dp.height, zoom); _cur_dpi = &dp; - /* translate to window coordinates */ - dp.left = x; - dp.top = y; - - if (vp->overlay != NULL) vp->overlay->Draw(&dp); - - /* translate back to world coordinates */ - dp.left = UnScaleByZoom(_vd.dpi.left, zoom); - dp.top = UnScaleByZoom(_vd.dpi.top, zoom); + if (vp->overlay != NULL && vp->overlay->GetCargoMask() != 0 && vp->overlay->GetCompanyMask() != 0) { + /* translate to window coordinates */ + dp.left = x; + dp.top = y; + vp->overlay->Draw(&dp); + } - if (_vd.string_sprites_to_draw.Length() != 0) ViewportDrawStrings(zoom, &_vd.string_sprites_to_draw); + if (_vd.string_sprites_to_draw.Length() != 0) { + /* translate to world coordinates */ + dp.left = UnScaleByZoom(_vd.dpi.left, zoom); + dp.top = UnScaleByZoom(_vd.dpi.top, zoom); + ViewportDrawStrings(zoom, &_vd.string_sprites_to_draw); + } _cur_dpi = old_dpi; -- cgit v1.2.3-54-g00ecf