Skip to content

Commit a02a80f

Browse files
authored
Feature: Added option to turn off double click gesture (#11065)
1 parent 29a65e9 commit a02a80f

File tree

8 files changed

+49
-5
lines changed

8 files changed

+49
-5
lines changed

src/Files.App/ServicesImplementation/Settings/FoldersSettingsService.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,12 @@ public bool SelectFilesOnHover
250250
set => Set(value);
251251
}
252252

253+
public bool DoubleClickToGoUp
254+
{
255+
get => Get(true);
256+
set => Set(value);
257+
}
258+
253259
protected override void RaiseOnSettingChangedEvent(object sender, SettingChangedEventArgs e)
254260
{
255261
switch (e.SettingName)
@@ -280,6 +286,7 @@ protected override void RaiseOnSettingChangedEvent(object sender, SettingChanged
280286
case nameof(ShowConfirmDeleteDialog):
281287
case nameof(SelectFilesOnHover):
282288
case nameof(ShowSelectionCheckboxes):
289+
case nameof(DoubleClickToGoUp):
283290
Analytics.TrackEvent($"Set {e.SettingName} to {e.NewValue}");
284291
break;
285292
}

src/Files.App/Strings/en-US/Resources.resw

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2883,4 +2883,7 @@
28832883
<data name="Settings" xml:space="preserve">
28842884
<value>Settings</value>
28852885
</data>
2886+
<data name="DoubleClickBlankSpaceToGoUp" xml:space="preserve">
2887+
<value>Double click on a blank space to go up one directory</value>
2888+
</data>
28862889
</root>

src/Files.App/ViewModels/SettingsViewModels/FoldersViewModel.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,19 @@ public bool SelectFilesOnHover
353353
}
354354
}
355355

356+
public bool DoubleClickToGoUp
357+
{
358+
get => UserSettingsService.FoldersSettingsService.DoubleClickToGoUp;
359+
set
360+
{
361+
if (value != UserSettingsService.FoldersSettingsService.DoubleClickToGoUp)
362+
{
363+
UserSettingsService.FoldersSettingsService.DoubleClickToGoUp = value;
364+
OnPropertyChanged();
365+
}
366+
}
367+
}
368+
356369
// Local methods
357370

358371
public void ResetLayoutPreferences()

src/Files.App/Views/LayoutModes/ColumnViewBase.xaml.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,13 +333,15 @@ private void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
333333
ItemInvoked?.Invoke(new ColumnParam { NavPathParam = (item is ShortcutItem sht ? sht.TargetPath : item.ItemPath), ListView = FileList }, EventArgs.Empty);
334334
break;
335335
default:
336-
ParentShellPageInstance.Up_Click();
336+
if (UserSettingsService.FoldersSettingsService.DoubleClickToGoUp)
337+
ParentShellPageInstance.Up_Click();
337338
break;
338339
}
339340
}
340341
else
341342
{
342-
ParentShellPageInstance.Up_Click();
343+
if (UserSettingsService.FoldersSettingsService.DoubleClickToGoUp)
344+
ParentShellPageInstance.Up_Click();
343345
}
344346

345347
ResetRenameDoubleClick();

src/Files.App/Views/LayoutModes/DetailsLayoutBrowser.xaml.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,8 @@ private void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
454454
}
455455
else
456456
{
457-
ParentShellPageInstance.Up_Click();
457+
if (UserSettingsService.FoldersSettingsService.DoubleClickToGoUp)
458+
ParentShellPageInstance.Up_Click();
458459
}
459460
ResetRenameDoubleClick();
460461
}

src/Files.App/Views/LayoutModes/GridViewBrowser.xaml.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,8 @@ private void FileList_DoubleTapped(object sender, DoubleTappedRoutedEventArgs e)
431431
}
432432
else
433433
{
434-
ParentShellPageInstance.Up_Click();
434+
if (UserSettingsService.FoldersSettingsService.DoubleClickToGoUp)
435+
ParentShellPageInstance.Up_Click();
435436
}
436437
ResetRenameDoubleClick();
437438
}

src/Files.App/Views/SettingsPages/Folders.xaml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,14 +324,26 @@
324324
<!-- Select On Hover -->
325325
<local:SettingsBlockControl Title="{helpers:ResourceString Name=SelectFilesAndFoldersOnHover}" HorizontalAlignment="Stretch">
326326
<local:SettingsBlockControl.Icon>
327-
<FontIcon Glyph="&#xE8B0;" />
327+
<FontIcon Glyph="&#xE14E;" />
328328
</local:SettingsBlockControl.Icon>
329329

330330
<ToggleSwitch
331331
AutomationProperties.Name="{helpers:ResourceString Name=SelectFilesAndFoldersOnHover}"
332332
IsOn="{x:Bind ViewModel.SelectFilesOnHover, Mode=TwoWay}"
333333
Style="{StaticResource RightAlignedToggleSwitchStyle}" />
334334
</local:SettingsBlockControl>
335+
336+
<!-- Double click to go up -->
337+
<local:SettingsBlockControl Title="{helpers:ResourceString Name=DoubleClickBlankSpaceToGoUp}" HorizontalAlignment="Stretch">
338+
<local:SettingsBlockControl.Icon>
339+
<FontIcon Glyph="&#xE8B0;" />
340+
</local:SettingsBlockControl.Icon>
341+
342+
<ToggleSwitch
343+
AutomationProperties.Name="{helpers:ResourceString Name=DoubleClickBlankSpaceToGoUp}"
344+
IsOn="{x:Bind ViewModel.DoubleClickToGoUp, Mode=TwoWay}"
345+
Style="{StaticResource RightAlignedToggleSwitchStyle}" />
346+
</local:SettingsBlockControl>
335347

336348
<!-- Calculate folder sizes -->
337349
<local:SettingsBlockControl

src/Files.Backend/Services/Settings/IFoldersSettingsService.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,5 +174,10 @@ public interface IFoldersSettingsService : IBaseSettingsService, INotifyProperty
174174
/// Gets or sets a value indicating whether or not to select files and folders when hovering them.
175175
/// </summary>
176176
bool SelectFilesOnHover { get; set; }
177+
178+
/// <summary>
179+
/// Gets or sets a value indicating if double clicking a blank space should go up a directory.
180+
/// </summary>
181+
bool DoubleClickToGoUp { get; set; }
177182
}
178183
}

0 commit comments

Comments
 (0)