diff --git a/Flow.Launcher.Plugin/Result.cs b/Flow.Launcher.Plugin/Result.cs
index 027631533..f2050cc9f 100644
--- a/Flow.Launcher.Plugin/Result.cs
+++ b/Flow.Launcher.Plugin/Result.cs
@@ -263,6 +263,16 @@ namespace Flow.Launcher.Plugin
///
public PreviewInfo Preview { get; set; } = PreviewInfo.Default;
+ ///
+ /// Determines if the user selection count should be added to the score. This can be useful when set to false to allow the result sequence order to be the same everytime instead of changing based on selection.
+ ///
+ public bool AddSelectedCount { get; set; } = true;
+
+ ///
+ /// Maximum score. This can be useful when set one result to the top by default. This is the score for the results set to the topmost by users.
+ ///
+ public const int MaxScore = int.MaxValue;
+
///
/// Info of the preview section of a
///
diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs
index 7260593dc..e369a1fea 100644
--- a/Flow.Launcher/ViewModel/MainViewModel.cs
+++ b/Flow.Launcher/ViewModel/MainViewModel.cs
@@ -1471,12 +1471,14 @@ namespace Flow.Launcher.ViewModel
{
if (_topMostRecord.IsTopMost(result))
{
- result.Score = int.MaxValue;
+ result.Score = Result.MaxScore;
}
- else
+ else if (result.Score != Result.MaxScore)
{
var priorityScore = metaResults.Metadata.Priority * 150;
- result.Score += _userSelectedRecord.GetSelectedCount(result) + priorityScore;
+ result.Score += result.AddSelectedCount ?
+ _userSelectedRecord.GetSelectedCount(result) + priorityScore :
+ priorityScore;
}
}
}