Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authortherzok <marius.ungureanu@xamarin.com>2016-04-18 13:37:21 +0300
committertherzok <marius.ungureanu@xamarin.com>2016-04-18 13:37:21 +0300
commite721579179ce1a8af1eae2d783687354d4f68b9b (patch)
tree3eb576bcbc81ed2598d6fddb54e41be0bb81e534 /main
parent22652b4e4cf5db7fcbcfb1758fa59d42cac42eaf (diff)
[VCS] Load icons on the UI thread regardless of where the event is triggered.
This shouldn't happen, as the initialized event should be happening on the UI thread. Bug 40443 - VersionControl is not threadsafe
Diffstat (limited to 'main')
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlService.cs38
1 files changed, 20 insertions, 18 deletions
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlService.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlService.cs
index 0c1fb6bdc4..18f9dcb1ca 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlService.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/VersionControlService.cs
@@ -54,25 +54,27 @@ namespace MonoDevelop.VersionControl
static VersionControlService ()
{
- IdeApp.Initialized += delegate {
+ IdeApp.Initialized += async delegate {
try {
- overlay_modified = Xwt.Drawing.Image.FromResource("modified-overlay-16.png");
- overlay_removed = Xwt.Drawing.Image.FromResource("removed-overlay-16.png");
- overlay_renamed = Xwt.Drawing.Image.FromResource("renamed-overlay-16.png");
- overlay_conflicted = Xwt.Drawing.Image.FromResource("conflict-overlay-16.png");
- overlay_added = Xwt.Drawing.Image.FromResource("added-overlay-16.png");
- overlay_controled = Xwt.Drawing.Image.FromResource("versioned-overlay-16.png");
- overlay_unversioned = Xwt.Drawing.Image.FromResource("unversioned-overlay-16.png");
- overlay_protected = Xwt.Drawing.Image.FromResource("lock-required-overlay-16.png");
- overlay_unlocked = Xwt.Drawing.Image.FromResource("unlocked-overlay-16.png");
- overlay_locked = Xwt.Drawing.Image.FromResource("locked-overlay-16.png");
- overlay_ignored = Xwt.Drawing.Image.FromResource("ignored-overlay-16.png");
-
- icon_modified = ImageService.GetIcon ("vc-file-modified", Gtk.IconSize.Menu);
- icon_removed = ImageService.GetIcon ("vc-file-removed", Gtk.IconSize.Menu);
- icon_conflicted = ImageService.GetIcon ("vc-file-conflicted", Gtk.IconSize.Menu);
- icon_added = ImageService.GetIcon ("vc-file-added", Gtk.IconSize.Menu);
- icon_controled = Xwt.Drawing.Image.FromResource("versioned-overlay-16.png");
+ await Runtime.RunInMainThread (() => {
+ overlay_modified = Xwt.Drawing.Image.FromResource ("modified-overlay-16.png");
+ overlay_removed = Xwt.Drawing.Image.FromResource ("removed-overlay-16.png");
+ overlay_renamed = Xwt.Drawing.Image.FromResource ("renamed-overlay-16.png");
+ overlay_conflicted = Xwt.Drawing.Image.FromResource ("conflict-overlay-16.png");
+ overlay_added = Xwt.Drawing.Image.FromResource ("added-overlay-16.png");
+ overlay_controled = Xwt.Drawing.Image.FromResource ("versioned-overlay-16.png");
+ overlay_unversioned = Xwt.Drawing.Image.FromResource ("unversioned-overlay-16.png");
+ overlay_protected = Xwt.Drawing.Image.FromResource ("lock-required-overlay-16.png");
+ overlay_unlocked = Xwt.Drawing.Image.FromResource ("unlocked-overlay-16.png");
+ overlay_locked = Xwt.Drawing.Image.FromResource ("locked-overlay-16.png");
+ overlay_ignored = Xwt.Drawing.Image.FromResource ("ignored-overlay-16.png");
+
+ icon_modified = ImageService.GetIcon ("vc-file-modified", Gtk.IconSize.Menu);
+ icon_removed = ImageService.GetIcon ("vc-file-removed", Gtk.IconSize.Menu);
+ icon_conflicted = ImageService.GetIcon ("vc-file-conflicted", Gtk.IconSize.Menu);
+ icon_added = ImageService.GetIcon ("vc-file-added", Gtk.IconSize.Menu);
+ icon_controled = Xwt.Drawing.Image.FromResource ("versioned-overlay-16.png");
+ });
} catch (Exception e) {
LoggingService.LogError ("Error while loading icons.", e);
}