From 50a831183eead291cb9da69227800756fd0e3671 Mon Sep 17 00:00:00 2001
From: Spike Curtis <spike@coder.com>
Date: Thu, 23 Jan 2025 14:04:06 +0400
Subject: [PATCH] fix: handle tray width on scaled systems

---
 App/TrayWindow.xaml.cs | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/App/TrayWindow.xaml.cs b/App/TrayWindow.xaml.cs
index 9e172b4..fcd1c0e 100644
--- a/App/TrayWindow.xaml.cs
+++ b/App/TrayWindow.xaml.cs
@@ -192,7 +192,8 @@ private void ResizeWindow()
         // Adjust the AppWindow size
         var scale = GetDisplayScale();
         var height = (int)(desiredSize.Height * scale);
-        AppWindow.Resize(new SizeInt32(WIDTH, height));
+        var width = (int)(WIDTH * scale);
+        AppWindow.Resize(new SizeInt32(width, height));
     }
 
     private double GetDisplayScale()
@@ -232,12 +233,13 @@ private void MoveWindow()
     private PointInt32 GetWindowPosition()
     {
         var height = AppWindow.Size.Height;
+        var width = AppWindow.Size.Width;
         var cursorPosition = _lastActivatePosition;
         if (cursorPosition is null)
         {
             var primaryWorkArea = DisplayArea.Primary.WorkArea;
             return new PointInt32(
-                primaryWorkArea.Width - WIDTH,
+                primaryWorkArea.Width - width,
                 primaryWorkArea.Height - height
             );
         }
@@ -252,7 +254,7 @@ private PointInt32 GetWindowPosition()
         ).WorkArea;
 
         // Adjust if the window goes off the right edge of the display.
-        if (x + WIDTH > workArea.X + workArea.Width) x = workArea.X + workArea.Width - WIDTH;
+        if (x + width > workArea.X + workArea.Width) x = workArea.X + workArea.Width - width;
 
         // Adjust if the window goes off the bottom edge of the display.
         if (y + height > workArea.Y + workArea.Height) y = workArea.Y + workArea.Height - height;