Finding peace with the UI thread.

There is the issue that in some cases that the ui thread blocked.
This commit is contained in:
miterosan
2018-07-24 04:56:34 +02:00
parent 16db81e9b5
commit 55f0cbf63e
3 changed files with 21 additions and 20 deletions

View File

@ -49,7 +49,9 @@ namespace osu.Game.Overlays.Chat
public void AddItem(Channel channel) public void AddItem(Channel channel)
{ {
if (!ChannelTabControl.Items.Contains(channel))
ChannelTabControl.AddItem(channel); ChannelTabControl.AddItem(channel);
if (Current.Value == null) if (Current.Value == null)
Current.Value = channel; Current.Value = channel;
} }

View File

@ -55,15 +55,11 @@ namespace osu.Game.Overlays.Chat
Channel.PendingMessageResolved += pendingMessageResolved; Channel.PendingMessageResolved += pendingMessageResolved;
} }
[BackgroundDependencyLoader]
private void load()
{
newMessagesArrived(Channel.Messages);
}
protected override void LoadComplete() protected override void LoadComplete()
{ {
base.LoadComplete(); base.LoadComplete();
newMessagesArrived(Channel.Messages);
scrollToEnd(); scrollToEnd();
} }

View File

@ -124,6 +124,8 @@ namespace osu.Game.Overlays.Chat.Selection
} }
public void UpdateAvailableChannels(IEnumerable<Channel> channels) public void UpdateAvailableChannels(IEnumerable<Channel> channels)
{
Scheduler.Add(() =>
{ {
sectionsFlow.ChildrenEnumerable = new[] sectionsFlow.ChildrenEnumerable = new[]
{ {
@ -142,6 +144,7 @@ namespace osu.Game.Overlays.Chat.Selection
c.OnRequestLeave = channel => { OnRequestLeave?.Invoke(channel); }; c.OnRequestLeave = channel => { OnRequestLeave?.Invoke(channel); };
} }
} }
});
} }
[BackgroundDependencyLoader] [BackgroundDependencyLoader]