Skip to content

Commit 7ece30a

Browse files
authored
Fix: Fixed COMException in LayoutPreferencesManager.SetLayoutPreferencesForPath (#15321)
1 parent d7428ed commit 7ece30a

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

src/Files.App/Helpers/Layout/LayoutPreferencesManager.cs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -532,8 +532,8 @@ public static void SetLayoutPreferencesForPath(string path, LayoutPreferencesIte
532532
return null;
533533

534534
// Port settings to the database, delete the ADS
535-
SetLayoutPreferencesToDatabase(path, frn, layoutPreferences);
536-
PInvoke.DeleteFileFromApp($"{path}:files_layoutmode");
535+
if (SetLayoutPreferencesToDatabase(path, frn, layoutPreferences))
536+
PInvoke.DeleteFileFromApp($"{path}:files_layoutmode");
537537

538538
return layoutPreferences;
539539
}
@@ -578,20 +578,23 @@ public static void SetLayoutPreferencesForPath(string path, LayoutPreferencesIte
578578
}
579579
}
580580

581-
private static void SetLayoutPreferencesToDatabase(string path, ulong? frn, LayoutPreferencesItem preferencesItem)
581+
private static bool SetLayoutPreferencesToDatabase(string path, ulong? frn, LayoutPreferencesItem preferencesItem)
582582
{
583583
if (string.IsNullOrEmpty(path))
584-
return;
584+
return false;
585585

586-
var dbInstance = GetDatabaseManagerInstance();
587-
if (dbInstance.GetPreferences(path, frn) is null &&
588-
new LayoutPreferencesItem().Equals(preferencesItem))
586+
return SafetyExtensions.IgnoreExceptions(() =>
589587
{
590-
// Do not create setting if it's default
591-
return;
592-
}
588+
var dbInstance = GetDatabaseManagerInstance();
589+
if (dbInstance.GetPreferences(path, frn) is null &&
590+
new LayoutPreferencesItem().Equals(preferencesItem))
591+
{
592+
// Do not create setting if it's default
593+
return;
594+
}
593595

594-
dbInstance.SetPreferences(path, frn, preferencesItem);
596+
dbInstance.SetPreferences(path, frn, preferencesItem);
597+
});
595598
}
596599

597600
private bool SetProperty<TValue>(Func<LayoutPreferencesItem, TValue> prop, Action<LayoutPreferencesItem> update, string propertyName)

0 commit comments

Comments
 (0)