diff --git a/QuickLook.Plugin/QuickLook.Plugin.PDFViewer/PdfViewerControl.xaml.cs b/QuickLook.Plugin/QuickLook.Plugin.PDFViewer/PdfViewerControl.xaml.cs
index 37b6ed7..4cf40b4 100644
--- a/QuickLook.Plugin/QuickLook.Plugin.PDFViewer/PdfViewerControl.xaml.cs
+++ b/QuickLook.Plugin/QuickLook.Plugin.PDFViewer/PdfViewerControl.xaml.cs
@@ -35,13 +35,12 @@ namespace QuickLook.Plugin.PDFViewer
///
public partial class PdfViewerControl : UserControl, INotifyPropertyChanged, IDisposable
{
- private const double MinZoomFactor = 0.1d;
- private const double MaxZoomFactor = 5d;
private int _changePageDeltaSum;
private bool _initPage = true;
-
+ private double _maxZoomFactor = double.NaN;
+ private double _minZoomFactor = double.NaN;
private bool _pdfLoaded;
- private double _viewRenderFactor = 0.5d;
+ private double _viewRenderFactor = double.NaN;
public PdfViewerControl()
{
@@ -159,7 +158,17 @@ namespace QuickLook.Plugin.PDFViewer
var pos = pagePanel.GetScrollPosition();
double factor;
- if (pagePanel.ZoomToFit)
+
+ // First time showing. Set thresholds here.
+ if (double.IsNaN(_minZoomFactor) || double.IsNaN(_maxZoomFactor))
+ {
+ factor = Math.Min(pagePanel.ActualHeight / PdfHandle.Pages[CurrentPage].Height,
+ pagePanel.ActualWidth / PdfHandle.Pages[CurrentPage].Width);
+ _viewRenderFactor = factor;
+ _minZoomFactor = 0.1 * factor;
+ _maxZoomFactor = 5 * factor;
+ }
+ else if (pagePanel.ZoomToFit)
{
factor = Math.Min(pagePanel.ActualHeight / PdfHandle.Pages[CurrentPage].Height,
pagePanel.ActualWidth / PdfHandle.Pages[CurrentPage].Width);
@@ -167,10 +176,10 @@ namespace QuickLook.Plugin.PDFViewer
else
{
factor = pagePanel.ZoomFactor * _viewRenderFactor;
- factor = Math.Max(factor, MinZoomFactor);
- factor = Math.Min(factor, MaxZoomFactor);
- pagePanel.MinZoomFactor = MinZoomFactor / factor;
- pagePanel.MaxZoomFactor = MaxZoomFactor / factor;
+ factor = Math.Max(factor, _minZoomFactor);
+ factor = Math.Min(factor, _maxZoomFactor);
+ pagePanel.MinZoomFactor = _minZoomFactor / factor;
+ pagePanel.MaxZoomFactor = _maxZoomFactor / factor;
}
var image = PdfHandle.Pages[CurrentPage].Render(factor);
@@ -221,7 +230,8 @@ namespace QuickLook.Plugin.PDFViewer
tempHandle.Close();
}
- return size;
+
+ return new Size(size.Width * 3, size.Height * 3);
}
public void LoadPdf(string path)
diff --git a/QuickLook.sln.DotSettings b/QuickLook.sln.DotSettings
index b66cfe4..385a2aa 100644
--- a/QuickLook.sln.DotSettings
+++ b/QuickLook.sln.DotSettings
@@ -17,6 +17,7 @@
0
0
0
+ NEVER
Copyright © $CURRENT_YEAR$ $USER_NAME$
@@ -39,7 +40,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
False
False
C:\Users\Paddy\AppData\Local\JetBrains\Transient\ReSharperPlatformVs15\v08_4c97e4a7\SolutionCaches
+ True
+ True
+ True
+ True
True
+ True
True
True
04/11/2017 18:22:55