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:
authorMike Krüger <mikkrg@microsoft.com>2018-04-16 13:51:20 +0300
committerGitHub <noreply@github.com>2018-04-16 13:51:20 +0300
commit0194f63345827df93d2d103f083375155daf071d (patch)
tree3e1c9c6c648989cc3dbcc8017f6b4f84cb352f63 /main
parent6dda883bd60ddcb086d94b72f9e2d2ea27e56ec3 (diff)
parent57b47962483b6c3a860592f316125365ff4728c4 (diff)
Merge pull request #4546 from mono/master-fix597271
Fixes VSTS 597271: [Feedback] Getting "The type initializer for
Diffstat (limited to 'main')
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/Mono.TextEditor/Gui/TextViewMargin.cs6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/OSXEditor.cs30
2 files changed, 26 insertions, 10 deletions
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/Mono.TextEditor/Gui/TextViewMargin.cs b/main/src/addins/MonoDevelop.SourceEditor2/Mono.TextEditor/Gui/TextViewMargin.cs
index 8070cec71c..208d2ed4b9 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/Mono.TextEditor/Gui/TextViewMargin.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/Mono.TextEditor/Gui/TextViewMargin.cs
@@ -525,7 +525,11 @@ namespace Mono.TextEditor
{
#if MAC
var img = OSXEditor.IBeamCursorImage;
- xtermCursorInverted = new Cursor(xtermCursor.Display, (InvertCursorPixbuf (img.ToPixbuf())), (int)img.Width / 2, (int)img.Height / 2);
+ if (img != null) {
+ xtermCursorInverted = new Cursor(xtermCursor.Display, (InvertCursorPixbuf (img.ToPixbuf())), (int)img.Width / 2, (int)img.Height / 2);
+ } else {
+ xtermCursorInverted = xtermCursor;
+ }
#else
xtermCursorInverted = xtermCursor;
#endif
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/OSXEditor.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/OSXEditor.cs
index 46842333f1..5e97624536 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/OSXEditor.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/OSXEditor.cs
@@ -34,19 +34,31 @@ namespace MonoDevelop.Ide.Editor
{
class OSXEditor
{
+ static bool hasLoaded;
static Xwt.Drawing.Image image;
+ static object loadLock = new object ();
public static Xwt.Drawing.Image IBeamCursorImage {
get {
- if (image != null)
- return image;
- var cacheFileName = Path.Combine(UserProfile.Current.CacheDir, "MacCursorImage.tiff");
- if (!File.Exists(cacheFileName))
- NSCursor.IBeamCursor.Image.AsTiff().Save(cacheFileName, true);
- var img = Xwt.Drawing.Image.FromFile(cacheFileName);
- var size = NSCursor.IBeamCursor.Image.Size;
- image = img.WithSize(size.Width, size.Height);
- return image;
+ lock (loadLock) {
+ if (hasLoaded)
+ return image;
+ try {
+ var cacheFileName = Path.Combine (UserProfile.Current.CacheDir, "MacCursorImage.tiff");
+ if (!File.Exists (cacheFileName)) {
+ NSCursor.IBeamCursor.Image.AsTiff ().Save (cacheFileName, true);
+ }
+ var img = Xwt.Drawing.Image.FromFile (cacheFileName);
+ var size = NSCursor.IBeamCursor.Image.Size;
+ image = img.WithSize (size.Width, size.Height);
+ return image;
+ } catch (Exception e) {
+ LoggingService.LogError ("Error while getting IBeam cursor image.", e);
+ return null;
+ } finally {
+ hasLoaded = true;
+ }
+ }
}
}