Inertia

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ HEAD  →  ?path2? @ 1
/trunk/Inertia/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);