private void UpdateIcon(AppIcon icon) { string tempPath = null; string path; if (icon == null || icon.Icons.Length == 0) { path = DefaultIconName; } else if (icon.Source == AppIcon.IconSource.File) { path = icon.DefaultIcon.Path; } else { tempPath = Path.GetTempFileName(); using (var tmpStream = File.Open(tempPath, FileMode.Create)) using (var iconStream = icon.GetIconDataStream(icon.DefaultIcon)) { iconStream.CopyTo(tmpStream); } path = tempPath; } using (GLibString gpath = path) { AppIndicator.SetIcon(Handle, gpath); } ClearTempFile(); tempIconFile = tempPath; }