From f251df7e36d7549526635072963320fe8d46503b Mon Sep 17 00:00:00 2001 From: Charles Milette Date: Sun, 29 Apr 2018 14:23:20 -0400 Subject: [PATCH] Fix crash when opening screen capture form --- ShareX.HelpersLib/Helpers/Helpers.cs | 31 ++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/ShareX.HelpersLib/Helpers/Helpers.cs b/ShareX.HelpersLib/Helpers/Helpers.cs index 64a205c51..d8b10699c 100644 --- a/ShareX.HelpersLib/Helpers/Helpers.cs +++ b/ShareX.HelpersLib/Helpers/Helpers.cs @@ -24,7 +24,6 @@ You should have received a copy of the GNU General Public License #endregion License Information (GPL v3) using Microsoft.Win32; -using Newtonsoft.Json.Linq; using ShareX.HelpersLib.Properties; using System; using System.Collections.Generic; @@ -42,6 +41,7 @@ You should have received a copy of the GNU General Public License using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.Security.Cryptography; +using System.Security.Permissions; using System.Security.Principal; using System.Text; using System.Text.RegularExpressions; @@ -69,13 +69,25 @@ public static class Helpers public static readonly Version OSVersion = Environment.OSVersion.Version; - public static Cursor[] CursorList = new Cursor[] { - Cursors.AppStarting, Cursors.Arrow, Cursors.Cross, Cursors.Default, Cursors.Hand, Cursors.Help, - Cursors.HSplit, Cursors.IBeam, Cursors.No, Cursors.NoMove2D, Cursors.NoMoveHoriz, Cursors.NoMoveVert, - Cursors.PanEast, Cursors.PanNE, Cursors.PanNorth, Cursors.PanNW, Cursors.PanSE, Cursors.PanSouth, - Cursors.PanSW, Cursors.PanWest, Cursors.SizeAll, Cursors.SizeNESW, Cursors.SizeNS, Cursors.SizeNWSE, - Cursors.SizeWE, Cursors.UpArrow, Cursors.VSplit, Cursors.WaitCursor - }; + private static Cursor[] _cursorList; + public static Cursor[] CursorList + { + get + { + if (_cursorList == null) + { + _cursorList = new Cursor[] { + Cursors.AppStarting, Cursors.Arrow, Cursors.Cross, Cursors.Default, Cursors.Hand, Cursors.Help, + Cursors.HSplit, Cursors.IBeam, Cursors.No, Cursors.NoMove2D, Cursors.NoMoveHoriz, Cursors.NoMoveVert, + Cursors.PanEast, Cursors.PanNE, Cursors.PanNorth, Cursors.PanNW, Cursors.PanSE, Cursors.PanSouth, + Cursors.PanSW, Cursors.PanWest, Cursors.SizeAll, Cursors.SizeNESW, Cursors.SizeNS, Cursors.SizeNWSE, + Cursors.SizeWE, Cursors.UpArrow, Cursors.VSplit, Cursors.WaitCursor + }; + } + + return _cursorList; + } + } /// Get file name extension without dot. public static string GetFilenameExtension(string filePath) @@ -1268,13 +1280,14 @@ public static string NumberToLetters(int num) return result; } + [ReflectionPermission(SecurityAction.Assert, MemberAccess = true)] public static bool TryFixHandCursor() { try { // https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/Cursors.cs,423 typeof(Cursors).GetField("hand", BindingFlags.NonPublic | BindingFlags.Static) - ?.SetValue(null, new Cursor(NativeMethods.LoadCursor(IntPtr.Zero, NativeConstants.IDC_HAND))); + .SetValue(null, new Cursor(NativeMethods.LoadCursor(IntPtr.Zero, NativeConstants.IDC_HAND))); return true; }