Skip to content

Commit 13075ba

Browse files
committed
feat: Refresh on message count changed
1 parent ce6d52d commit 13075ba

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

Editor/MessageBanner.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public bool ShowMessageTypeCount
3737
public IList<Message> Messages { get; private set; }
3838
public int CurrentMessageIndex { get; private set; }
3939

40+
private int _messageCountCache;
41+
4042

4143
public MessageBanner(object source, string sourceName,
4244
bool showMessageTypeCount = true, bool allowClearMessages = false)
@@ -116,6 +118,14 @@ public MessageBanner(IList<Message> messages, object source, string sourceName,
116118
RegisterCallback<ContextClickEvent>(OnContextClick);
117119

118120
InitializeMessageSwitch();
121+
122+
schedule.Execute(() =>
123+
{
124+
if ((Messages?.Count ?? 0) != _messageCountCache)
125+
{
126+
Refresh();
127+
}
128+
}).Every(200);
119129
}
120130

121131
private Image CreateMessageTypeImage(Texture defaultIcon)
@@ -160,8 +170,8 @@ public void Refresh()
160170
// ReSharper disable once PossibleNullReferenceException
161171
Message message = CurrentMessageIndex > -1 ? Messages[CurrentMessageIndex] : null;
162172
SetMessage(message);
163-
164173
Messages.CountByType(out int infoCount, out int warningCount, out int errorCount);
174+
_messageCountCache = Messages?.Count ?? 0;
165175
SetMessageCount(MessageType.Info, infoCount);
166176
SetMessageCount(MessageType.Warning, warningCount);
167177
SetMessageCount(MessageType.Error, errorCount);

Editor/MessageViewer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ private void CreateGUI()
325325

326326
private void Update()
327327
{
328-
if (Messages != null && Messages.Count != _messageCountCache)
328+
if ((Messages?.Count ?? 0) != _messageCountCache)
329329
{
330330
Refresh();
331331
}
@@ -416,7 +416,7 @@ public void Refresh()
416416
_tagList.Insert(0, TagAll);
417417

418418
Messages.CountByType(out int infoCount, out int warningCount, out int errorCount);
419-
_messageCountCache = infoCount + warningCount + errorCount;
419+
_messageCountCache = Messages?.Count ?? 0;
420420
_infoMessageToggle.SetMessageCount(infoCount);
421421
_warningMessageToggle.SetMessageCount(warningCount);
422422
_errorMessageToggle.SetMessageCount(errorCount);

0 commit comments

Comments
 (0)