Merge pull request #3358 from sylveon/hand

Fix crash when opening screen capture form
This commit is contained in:
Jaex 2018-04-29 21:37:15 +03:00 committed by GitHub
commit 0783dbc877
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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;
}
}
/// <summary>Get file name extension without dot.</summary>
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;
}