Inertia

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 4  →  ?path2? @ 5
/trunk/Inertia/Form1.cs
@@ -59,6 +59,8 @@
 
_inputSimulator = new InputSimulator();
 
_scrollCancellationTokenSource = new CancellationTokenSource();
 
_globalMouseKeyHook = Hook.GlobalEvents();
_globalMouseKeyHook.MouseWheel += GlobalMouseKeyHookMouseWheel;
 
@@ -163,6 +165,10 @@
 
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);
@@ -169,18 +175,10 @@
 
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)
@@ -195,6 +193,10 @@
 
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);
@@ -201,14 +203,6 @@
 
Debug.WriteLine($"Up event expired with delta {delta}");
 
if (_scrollCancellationTokenSource != null)
{
_scrollCancellationTokenSource.Cancel();
}
 
_scrollCancellationTokenSource = new CancellationTokenSource();
var cancellationToken = _scrollCancellationTokenSource.Token;
 
_globalMouseKeyHook.MouseWheel -= GlobalMouseKeyHookMouseWheel;
 
try
@@ -227,7 +221,7 @@
 
private static async Task ScrollUp(int delta, CancellationToken cancellationToken)
{
while (!cancellationToken.IsCancellationRequested && delta > 0)
while (!cancellationToken.IsCancellationRequested && delta > 1)
{
_inputSimulator.Mouse.VerticalScroll(delta);
await Task.Delay(25 * delta, cancellationToken);
@@ -238,7 +232,7 @@
 
private static async Task ScrollDown(int delta, CancellationToken cancellationToken)
{
while (!cancellationToken.IsCancellationRequested && delta > 0)
while (!cancellationToken.IsCancellationRequested && delta > 1)
{
_inputSimulator.Mouse.VerticalScroll(-delta);
await Task.Delay(25 * delta, cancellationToken);