/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); |