Inertia

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 5  →  ?path2? @ 4
/trunk/Inertia/Form1.cs
@@ -59,8 +59,6 @@
 
_inputSimulator = new InputSimulator();
 
_scrollCancellationTokenSource = new CancellationTokenSource();
 
_globalMouseKeyHook = Hook.GlobalEvents();
_globalMouseKeyHook.MouseWheel += GlobalMouseKeyHookMouseWheel;
 
@@ -165,10 +163,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);
@@ -175,10 +169,18 @@
 
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)
@@ -193,10 +195,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);
@@ -203,6 +201,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
@@ -221,7 +227,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);
@@ -232,7 +238,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);