/trunk/Inertia/Form1.cs/Form1.cs |
@@ -1,6 +1,5 @@ |
using System; |
using System.ComponentModel; |
using System.Configuration; |
using System.Diagnostics; |
using System.Threading; |
using System.Threading.Tasks; |
@@ -8,8 +7,6 @@ |
using WindowsInput; |
using AutoUpdaterDotNET; |
using Gma.System.MouseKeyHook; |
using Inertia.Properties; |
using Inertia.Utilities; |
|
namespace Inertia |
{ |
@@ -46,21 +43,8 @@ |
InitializeComponent(); |
AutoUpdater.Start("http://inertia.grimore.org/update/update.xml"); |
|
// Upgrade settings if required. |
if (!ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).HasFile) |
{ |
Settings.Default.Upgrade(); |
} |
|
// Bind to settings changed event. |
Settings.Default.SettingsLoaded += DefaultOnSettingsLoaded; |
Settings.Default.SettingsSaving += DefaultOnSettingsSaving; |
Settings.Default.PropertyChanged += DefaultOnPropertyChanged; |
|
_inputSimulator = new InputSimulator(); |
|
_scrollCancellationTokenSource = new CancellationTokenSource(); |
|
_globalMouseKeyHook = Hook.GlobalEvents(); |
_globalMouseKeyHook.MouseWheel += GlobalMouseKeyHookMouseWheel; |
|
@@ -89,19 +73,6 @@ |
|
#region Event Handlers |
|
private void DefaultOnSettingsSaving(object sender, CancelEventArgs e) |
{ |
} |
|
private void DefaultOnSettingsLoaded(object sender, SettingsLoadedEventArgs e) |
{ |
} |
|
private void DefaultOnPropertyChanged(object sender, PropertyChangedEventArgs e) |
{ |
Settings.Default.Save(); |
} |
|
private static void GlobalMouseKeyHookMouseWheel(object sender, MouseEventArgs e) |
{ |
var delta = Math.Abs(e.Delta); |
@@ -149,18 +120,9 @@ |
|
private void QuitToolStripMenuItem_Click(object sender, EventArgs e) |
{ |
Close(); |
|
Environment.Exit(0); |
Application.Exit(); |
} |
|
private void LaunchOnBootToolStripMenuItem_Click(object sender, EventArgs e) |
{ |
Settings.Default.LaunchOnBoot = ((ToolStripMenuItem) sender).Checked; |
|
LaunchOnBoot.Set(Settings.Default.LaunchOnBoot); |
} |
|
#endregion |
|
#region Private Methods |
@@ -167,10 +129,6 @@ |
|
private static async void ScrollDown() |
{ |
_scrollCancellationTokenSource.Cancel(); |
_scrollCancellationTokenSource = new CancellationTokenSource(); |
var cancellationToken = _scrollCancellationTokenSource.Token; |
|
var downDelta = Interlocked.Read(ref _downDelta); |
var delta = Math.Abs(downDelta / SystemInformation.MouseWheelScrollDelta); |
Interlocked.Exchange(ref _downDelta, 0); |
@@ -177,16 +135,20 @@ |
|
Debug.WriteLine($"Down event expired with delta {delta}"); |
|
if (_scrollCancellationTokenSource != null) |
{ |
_scrollCancellationTokenSource.Cancel(); |
} |
|
_scrollCancellationTokenSource = new CancellationTokenSource(); |
var cancellationToken = _scrollCancellationTokenSource.Token; |
|
_globalMouseKeyHook.MouseWheel -= GlobalMouseKeyHookMouseWheel; |
|
try |
{ |
{ |
await ScrollDown((int) delta, cancellationToken); |
} |
catch (TaskCanceledException) |
{ |
// We do not care. |
} |
finally |
{ |
_globalMouseKeyHook.MouseWheel += GlobalMouseKeyHookMouseWheel; |
@@ -195,10 +157,6 @@ |
|
private static async void ScrollUp() |
{ |
_scrollCancellationTokenSource.Cancel(); |
_scrollCancellationTokenSource = new CancellationTokenSource(); |
var cancellationToken = _scrollCancellationTokenSource.Token; |
|
var upDelta = Interlocked.Read(ref _upDelta); |
var delta = Math.Abs(upDelta / SystemInformation.MouseWheelScrollDelta); |
Interlocked.Exchange(ref _upDelta, 0); |
@@ -205,6 +163,14 @@ |
|
Debug.WriteLine($"Up event expired with delta {delta}"); |
|
if (_scrollCancellationTokenSource != null) |
{ |
_scrollCancellationTokenSource.Cancel(); |
} |
|
_scrollCancellationTokenSource = new CancellationTokenSource(); |
var cancellationToken = _scrollCancellationTokenSource.Token; |
|
_globalMouseKeyHook.MouseWheel -= GlobalMouseKeyHookMouseWheel; |
|
try |
@@ -211,10 +177,6 @@ |
{ |
await ScrollUp((int) delta, cancellationToken); |
} |
catch (TaskCanceledException) |
{ |
// We do not care. |
} |
finally |
{ |
_globalMouseKeyHook.MouseWheel += GlobalMouseKeyHookMouseWheel; |
@@ -223,7 +185,7 @@ |
|
private static async Task ScrollUp(int delta, CancellationToken cancellationToken) |
{ |
while (!cancellationToken.IsCancellationRequested && delta > 1) |
while (!cancellationToken.IsCancellationRequested && delta > 0) |
{ |
_inputSimulator.Mouse.VerticalScroll(delta); |
await Task.Delay(25 * delta, cancellationToken); |
@@ -234,7 +196,7 @@ |
|
private static async Task ScrollDown(int delta, CancellationToken cancellationToken) |
{ |
while (!cancellationToken.IsCancellationRequested && delta > 1) |
while (!cancellationToken.IsCancellationRequested && delta > 0) |
{ |
_inputSimulator.Mouse.VerticalScroll(-delta); |
await Task.Delay(25 * delta, cancellationToken); |