Skip to content

Commit dae5f1a

Browse files
committed
Fix incorrect size when starting up with scrolling enabled
1 parent b815080 commit dae5f1a

File tree

4 files changed

+39
-15
lines changed

4 files changed

+39
-15
lines changed

src/PicView.Avalonia/StartUp/QuickLoad.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,11 @@ public static async Task QuickLoadAsync(MainViewModel vm, string file)
4848
await Dispatcher.UIThread.InvokeAsync(() =>
4949
{
5050
vm.ImageViewer.SetTransform(imageModel.EXIFOrientation);
51-
WindowResizing.SetSize(imageModel.PixelWidth, imageModel.PixelHeight, secondaryPreloadValue?.ImageModel?.PixelWidth ?? 0, secondaryPreloadValue?.ImageModel?.PixelHeight ?? 0, imageModel.Rotation, vm);
51+
if (!Settings.Zoom.ScrollEnabled)
52+
{
53+
WindowResizing.SetSize(imageModel.PixelWidth, imageModel.PixelHeight, secondaryPreloadValue?.ImageModel?.PixelWidth ?? 0, secondaryPreloadValue?.ImageModel?.PixelHeight ?? 0, imageModel.Rotation, vm);
54+
}
55+
5256
if (Settings.WindowProperties.AutoFit)
5357
{
5458
WindowFunctions.CenterWindowOnScreen();
@@ -89,6 +93,22 @@ await Dispatcher.UIThread.InvokeAsync(() =>
8993

9094
vm.ExifOrientation = imageModel.EXIFOrientation;
9195

96+
if (Settings.Zoom.ScrollEnabled)
97+
{
98+
// Bad fix for scrolling
99+
// TODO: Implement proper startup scrolling fix
100+
Settings.Zoom.ScrollEnabled = false;
101+
await Dispatcher.UIThread.InvokeAsync(() =>
102+
{
103+
WindowResizing.SetSize(imageModel.PixelWidth, imageModel.PixelHeight, secondaryPreloadValue?.ImageModel?.PixelWidth ?? 0, secondaryPreloadValue?.ImageModel?.PixelHeight ?? 0, imageModel.Rotation, vm);
104+
}, DispatcherPriority.Background);
105+
Settings.Zoom.ScrollEnabled = true;
106+
await Dispatcher.UIThread.InvokeAsync(() =>
107+
{
108+
WindowResizing.SetSize(imageModel.PixelWidth, imageModel.PixelHeight, secondaryPreloadValue?.ImageModel?.PixelWidth ?? 0, secondaryPreloadValue?.ImageModel?.PixelHeight ?? 0, imageModel.Rotation, vm);
109+
}, DispatcherPriority.Send);
110+
}
111+
92112
// Add recent files, except when browsing archive
93113
if (string.IsNullOrWhiteSpace(TempFileHelper.TempFilePath))
94114
{

src/PicView.Avalonia/StartUp/StartUpHelper.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,20 +76,20 @@ public static void Start(MainViewModel vm, bool settingsExists, IClassicDesktopS
7676
window.Show();
7777
vm.ImageViewer = new ImageViewer();
7878

79-
ResourceLimits.LimitMemory(new Percentage(90));
8079
HandleStartUpMenuOrImage(vm, args);
81-
Task.Run(async () =>
80+
81+
ResourceLimits.LimitMemory(new Percentage(90));
82+
83+
Task.Run(() => LanguageUpdater.UpdateLanguageAsync(vm, settingsExists));
84+
if (settingsExists)
8285
{
83-
await LanguageUpdater.UpdateLanguageAsync(vm, settingsExists).ConfigureAwait(false);
84-
if (settingsExists)
85-
{
86-
await KeybindingManager.LoadKeybindings(vm.PlatformService).ConfigureAwait(false);
87-
}
88-
else
89-
{
90-
await KeybindingManager.SetDefaultKeybindings(vm.PlatformService).ConfigureAwait(false);
91-
}
92-
});
86+
Task.Run(() => KeybindingManager.LoadKeybindings(vm.PlatformService));
87+
}
88+
else
89+
{
90+
Task.Run(() => KeybindingManager.SetDefaultKeybindings(vm.PlatformService));
91+
}
92+
9393
HandleThemeUpdates(vm);
9494

9595
if (settingsExists)

src/PicView.Avalonia/WindowBehavior/WindowResizing.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,17 @@ public static void SetSize(MainViewModel vm)
6767
return;
6868
}
6969
}
70-
else
70+
else if (vm.FileInfo?.Exists != null)
7171
{
7272
var magickImage = new MagickImage();
7373
magickImage.Ping(vm.FileInfo);
7474
firstWidth = magickImage.Width;
7575
firstHeight = magickImage.Height;
7676
}
77+
else
78+
{
79+
return;
80+
}
7781
}
7882
else
7983
{

src/PicView.Core/Calculations/ImageSizeCalculationHelper.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ public static double GetTitleMaxWidth(double rotationAngle, double width, double
331331

332332
if (Settings.Zoom.ScrollEnabled)
333333
{
334-
titleMaxWidth += SizeDefaults.ScrollbarSize + 4;
334+
titleMaxWidth += SizeDefaults.ScrollbarSize + 10;
335335
}
336336
}
337337
else

0 commit comments

Comments
 (0)