From 43e67356f28443b28f0e37d512f8f4b1e7b73ad7 Mon Sep 17 00:00:00 2001 From: Paddy Xu Date: Tue, 30 May 2017 00:19:40 +0300 Subject: [PATCH] Fix scrolling to fast on a precision touchpad --- .../ImagePanel.xaml.cs | 14 ++++++++++---- .../PdfViewerControl.xaml.cs | 19 ++++++++++++++----- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/ImagePanel.xaml.cs b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/ImagePanel.xaml.cs index 7405ca3..ff1ed0a 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/ImagePanel.xaml.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.ImageViewer/ImagePanel.xaml.cs @@ -92,12 +92,18 @@ namespace QuickLook.Plugin.ImageViewer private void ViewPanel_PreviewMouseWheel(object sender, MouseWheelEventArgs e) { - if ((Keyboard.Modifiers & ModifierKeys.Control) == 0) - return; - e.Handled = true; - var newZoom = _zoomFactor + e.Delta / 120 * 0.1; + if ((Keyboard.Modifiers & ModifierKeys.Control) == 0) + { + // normal scroll + viewPanel.ScrollToVerticalOffset(viewPanel.VerticalOffset - e.Delta); + + return; + } + + // zoom + var newZoom = _zoomFactor + (double) e.Delta / 120 * 0.1; newZoom = Math.Max(newZoom, _minZoomFactor); newZoom = Math.Min(newZoom, 3); diff --git a/QuickLook.Plugin/QuickLook.Plugin.PDFViewer/PdfViewerControl.xaml.cs b/QuickLook.Plugin/QuickLook.Plugin.PDFViewer/PdfViewerControl.xaml.cs index e065548..34e51c2 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.PDFViewer/PdfViewerControl.xaml.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.PDFViewer/PdfViewerControl.xaml.cs @@ -79,19 +79,28 @@ namespace QuickLook.Plugin.PDFViewer if (Keyboard.Modifiers != ModifierKeys.None) return; + e.Handled = true; + if (e.Delta > 0) // up { - if (pageViewPanel.VerticalOffset != 0) return; + if (pageViewPanel.VerticalOffset != 0) + { + pageViewPanel.ScrollToVerticalOffset(pageViewPanel.VerticalOffset - e.Delta); // normal scroll + return; + } + PrevPage(); - e.Handled = true; } else // down { - if (pageViewPanel.VerticalOffset != pageViewPanel.ScrollableHeight) return; + if (pageViewPanel.VerticalOffset != pageViewPanel.ScrollableHeight) + { + pageViewPanel.ScrollToVerticalOffset(pageViewPanel.VerticalOffset - e.Delta); // normal scroll + return; + } NextPage(); - e.Handled = true; } } @@ -278,7 +287,7 @@ namespace QuickLook.Plugin.PDFViewer e.Handled = true; - newZoom = newZoom + e.Delta / 120 * 0.1; + newZoom = newZoom + (double) e.Delta / 120 * 0.1; newZoom = Math.Max(newZoom, MinZoomFactor); newZoom = Math.Min(newZoom, 3);