Fix: Unnecessary status bar redraws when there is no news to show (#8691)

InvalidateWindowData with mode SBI_NEWS_DELETED was called on the
status bar when checking for a new item of news to be shown in the
ticker, even if there is no news queued and no change occurs.
pull/221/head
Jonathan G Rennison 3 years ago committed by GitHub
parent e059a88533
commit 55ed7d16f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -666,8 +666,6 @@ static void MoveToNextTickerItem()
* there is no status bar but possible news. */
if (FindWindowById(WC_STATUS_BAR, 0) == nullptr) return;
InvalidateWindowData(WC_STATUS_BAR, 0, SBI_NEWS_DELETED); // invalidate the statusbar
/* if we're not at the last item, then move on */
while (_statusbar_news_item != _latest_news) {
_statusbar_news_item = (_statusbar_news_item == nullptr) ? _oldest_news : _statusbar_news_item->next;
@ -766,6 +764,7 @@ static void DeleteNewsItem(NewsItem *ni)
_statusbar_news_item = ni->prev;
/* About to remove the currently displayed item (ticker, or just a reminder) */
InvalidateWindowData(WC_STATUS_BAR, 0, SBI_NEWS_DELETED); // invalidate the statusbar
MoveToNextTickerItem();
}

Loading…
Cancel
Save