]> granicus.if.org Git - handbrake/commitdiff
MacGui: fix preview window scale factor on retina displays.
authorDamiano Galassi <damiog@gmail.com>
Sat, 16 Dec 2017 07:35:06 +0000 (08:35 +0100)
committerDamiano Galassi <damiog@gmail.com>
Sat, 16 Dec 2017 07:35:06 +0000 (08:35 +0100)
macosx/HBPreviewView.m

index e4d2ea630226a3d2726e5af86492880df8242c66..8bd40ea87494a6f54de9156b864101b8125ec755 100644 (file)
 {
     // Set the picture size display fields below the Preview Picture
     NSSize imageSize = NSMakeSize(CGImageGetWidth(self.image), CGImageGetHeight(self.image));
+    CGFloat backingScaleFactor = 1.0;
 
     if (imageSize.width > 0 && imageSize.height > 0) {
-        NSSize imageScaledSize = imageSize;
 
-        if (self.window && self.window.backingScaleFactor != 1.0)
+        if (self.window)
         {
-            // HiDPI mode usually display everything
-            // with douple pixel count, but we don't
-            // want to double the size of the video
-            imageScaledSize.height /= self.window.backingScaleFactor;
-            imageScaledSize.width /= self.window.backingScaleFactor;
+            backingScaleFactor = self.window.backingScaleFactor;
         }
-
+        // HiDPI mode usually display everything
+        // with douple pixel count, but we don't
+        // want to double the size of the video
+        NSSize imageScaledSize = NSMakeSize(imageSize.width / backingScaleFactor, imageSize.height / backingScaleFactor);
         NSSize frameSize = self.frame.size;
 
         if (self.showBorder == YES)
         [NSAnimationContext endGrouping];
         
         // Update the proprierties
-        self.scale = self.pictureLayer.frame.size.width / imageSize.width;
+        self.scale = self.pictureLayer.frame.size.width / imageSize.width * backingScaleFactor;
         self.pictureFrame = self.pictureLayer.frame;
     }
 }