Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
0076308
Pinned result object and storage
01Dri Mar 8, 2026
6243ee9
Pinned resulkts in main view
01Dri Mar 8, 2026
be25c36
pinned result option in settings
01Dri Mar 8, 2026
2743ef8
pinned result item update
01Dri Mar 8, 2026
a184ef9
Generic method
01Dri Mar 8, 2026
3d5bc26
pin query and result
01Dri Mar 8, 2026
9a0b6c1
deep copy
01Dri Mar 8, 2026
437a70d
quick actions to pinned results
01Dri Mar 8, 2026
cdea565
code quality
01Dri Mar 8, 2026
585fe33
save
01Dri Mar 8, 2026
cb27c08
code quality
01Dri Mar 8, 2026
de8d704
up
01Dri Mar 8, 2026
29c1144
up models
01Dri Mar 11, 2026
a60fbed
validation to remove pinned items when the plugin is removed
01Dri Mar 11, 2026
b53339b
up
01Dri Mar 11, 2026
a362703
up
01Dri Mar 11, 2026
fa10914
up
01Dri Mar 11, 2026
a77b49c
Last pinned at
01Dri Mar 12, 2026
8db0824
Variable to clean pinned results
01Dri Mar 12, 2026
13a7e65
up
01Dri Mar 12, 2026
72069a7
up
01Dri Mar 12, 2026
716ac91
up
01Dri Mar 12, 2026
ab4b0db
fix bug
01Dri Mar 12, 2026
b575f17
code quality
01Dri Mar 12, 2026
3c9c725
Merge branch 'dev' into feature/pinned-results
Jack251970 Mar 14, 2026
5678ec0
Use dynamic resource & Xaml format
Jack251970 Mar 18, 2026
ce4146d
Set List as default pinned layout and update enum
Jack251970 Mar 18, 2026
dd6883f
Update PinnedLayouts dropdown label refresh logic
Jack251970 Mar 18, 2026
bf7f6ca
Improve code quality
Jack251970 Mar 18, 2026
9532726
Improve PinnedResultsLayout property change notification
Jack251970 Mar 18, 2026
e37dbb2
Refactor EnablePinnedResults to support notifications
Jack251970 Mar 18, 2026
42adaea
Improve code quality
Jack251970 Mar 18, 2026
099c557
Fix property setter logic for EnablePinnedResults
Jack251970 Mar 18, 2026
2463139
Improve code quality
Jack251970 Mar 18, 2026
7db7793
Refactor PinnedResultItem with docs and cleanup
Jack251970 Mar 18, 2026
5690cc0
Update pinned items removal condition
Jack251970 Mar 18, 2026
0cf843f
Refactor pinned results refresh and history handling
Jack251970 Mar 18, 2026
2a7cbbb
Remove pinned results label from MainWindow.xaml
Jack251970 Mar 18, 2026
b60f27b
Add XML remarks to IsQuery property in PinnedResultItem
Jack251970 Mar 18, 2026
f512139
Improve result ranking and history tracking
Jack251970 Mar 18, 2026
9625490
Clean up commented-out query checks in PinnedResultItem
Jack251970 Mar 18, 2026
cbdba96
Update pin context menu icons and add results.png
Jack251970 Mar 18, 2026
e7ec862
Reorder context menu items for plugin selection
Jack251970 Mar 18, 2026
150cedc
Update pin/unpin glyphs in MainViewModel menu items
Jack251970 Mar 18, 2026
75bbb70
Prioritize pinned results over history on home page
Jack251970 Mar 18, 2026
0971a55
Document ShouldCleanPinnedResultsFromUninstalledPlugins
Jack251970 Mar 18, 2026
046a840
Remove auto-clean logic for pinned results
Jack251970 Mar 18, 2026
c78fa51
Refactor settings for improved data binding support
Jack251970 Mar 18, 2026
ef26be3
Refactor pinned result add/remove logic for accuracy
Jack251970 Mar 18, 2026
507cb55
Improve async result handling for history items
Jack251970 Mar 18, 2026
65562b0
Filter pinned items by plugin initialization state
Jack251970 Mar 18, 2026
7ef3e4a
Merge branch 'dev' into feature/pinned-results
Jack251970 Mar 18, 2026
7546b53
Potential fix for pull request finding
Jack251970 Mar 18, 2026
40a77f7
Remove OnPinnedItemClick handler from ListBox
Jack251970 Mar 18, 2026
b1c4ffa
Ensure PropertyChanged triggers on plugin uninstall
Jack251970 Mar 18, 2026
bdf87fb
Reset ShouldCleanPinnedResults flag after cleaning
Jack251970 Mar 18, 2026
dcea7a7
Update triggers to use UI element visibility directly
Jack251970 Mar 18, 2026
7e7f509
grid mode with shortcut
01Dri Mar 19, 2026
1ddf20c
grid mode navigation
01Dri Mar 19, 2026
3ad4d24
grid mode hotkey
01Dri Mar 19, 2026
e8996da
globalization
01Dri Mar 19, 2026
d90ce84
Merge branch 'feature/pinned-results' of https://github.com/01Dri/Flo…
01Dri Mar 19, 2026
6278a0b
Update grid mode navigation to use columns for Up/Down
Jack251970 Mar 19, 2026
88c82ed
Manage selection and grid mode transitions for pinned results
Jack251970 Mar 19, 2026
28f440b
Update pinned grid to notify results update channel
Jack251970 Mar 19, 2026
d140bad
Ensure results refresh when no plugin tasks run
Jack251970 Mar 19, 2026
05757ba
Update preview when pinned result is selected
Jack251970 Mar 19, 2026
e710208
Update preview on PinnedResults selection change
Jack251970 Mar 19, 2026
552a04f
fix grid mode results selected
01Dri Mar 21, 2026
537e38f
Grid Mode User control
01Dri Mar 21, 2026
f61c8e5
Refactor grid mode selection index handling
Jack251970 Mar 22, 2026
cc9efd9
Add MouseSelectCommand for improved mouse selection handling
Jack251970 Mar 22, 2026
87a0cda
Refactor result selection mouse/keyboard event handling
Jack251970 Mar 22, 2026
6056541
Remove ToolTip binding from ResultViewModel DataTemplate
Jack251970 Mar 22, 2026
9b8888c
Update mouse position handling in result list/grid
Jack251970 Mar 22, 2026
38f5c6a
grid automatic adjust height
01Dri Mar 28, 2026
fdbf5f6
Update badge settings to refresh query results immediately
Jack251970 Mar 28, 2026
c16905c
Improve code quality
Jack251970 Mar 28, 2026
1765211
Refactor pinned results count to double, update logic
Jack251970 Mar 28, 2026
cff6ee1
Refactor pinned grid property change notifications
Jack251970 Mar 28, 2026
b409645
Adjust pinned grid margin and height calculation
Jack251970 Mar 28, 2026
0f801a3
Refactor preview update logic in MainViewModel
Jack251970 Mar 28, 2026
e8a1368
Prevent PreviewSelectedItem from being set to null
Jack251970 Mar 28, 2026
b58ba32
Move UpdatePreviewAsync call to property setter
Jack251970 Mar 28, 2026
874b8bd
Ensure minimum reserved result count is 1 for grid
Jack251970 Mar 28, 2026
a424d0d
ReQuery ContextMenuPinActions
01Dri Mar 28, 2026
96404e8
Add null safety to prevent crashes when opening Theme settings
onesounds Mar 29, 2026
18b45f0
- Update separator logic to display when using Grid mode only
onesounds Mar 29, 2026
53c0d79
merge and fix conflicts
01Dri Apr 4, 2026
e596910
Add Home Font Size option to theme size UI
onesounds Apr 10, 2026
e5a47ca
- Add dynamic fallback for HomeIconFontStyle
onesounds Apr 10, 2026
599a944
Adjust margin
onesounds Apr 10, 2026
3e2199b
Merge branch 'dev' into feature/pinned-results
01Dri Apr 11, 2026
91016e7
enter or exit on grid mode with key down and key up
01Dri Apr 16, 2026
ee106e5
Merge branch 'feature/pinned-results' of https://github.com/01Dri/Flo…
01Dri Apr 16, 2026
b9b3c8a
Merge branch 'dev' into feature/pinned-results
01Dri Apr 16, 2026
fbf41dc
return to 10 items max
01Dri Apr 16, 2026
2041d18
Merge branch 'feature/pinned-results' of https://github.com/01Dri/Flo…
01Dri Apr 16, 2026
a5e873d
fix navigation bug
01Dri Apr 16, 2026
a759d8b
color text no pinned results adjust dynamic
01Dri Apr 19, 2026
e17650d
adjust result navigation with grid
01Dri Apr 19, 2026
c71849e
fix max pinned items condition
01Dri Apr 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion Flow.Launcher.Core/Plugin/PluginInstaller.cs
Original file line number Diff line number Diff line change
Expand Up @@ -174,10 +174,16 @@ public static async Task UninstallPluginAndCheckRestartAsync(PluginMetadata oldP

try
{
if (!await PublicApi.Instance.UninstallPluginAsync(oldPlugin, removePluginSettings))
var isUninstalled = await PublicApi.Instance.UninstallPluginAsync(oldPlugin, removePluginSettings);
if (!isUninstalled)
{
return;
}

// Ensure PropertyChanged is raised even if the flag was already true,
// so pinned-results cleanup is triggered on every successful uninstall.
Settings.ShouldCleanPinnedResultsFromUninstalledPlugins = false;
Settings.ShouldCleanPinnedResultsFromUninstalledPlugins = true;
}
catch (Exception e)
{
Expand Down
5 changes: 5 additions & 0 deletions Flow.Launcher.Core/Plugin/PluginManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -829,6 +829,11 @@ private static bool SameOrLesserPluginVersionExists(PluginMetadata metadata)

#region Public Functions

public static bool PluginInitializedAndUnmodified(string id)
{
return GetAllInitializedPlugins(includeFailed: false).Any(p => p.Metadata.ID == id) && !PluginModified(id);
}

public static bool PluginModified(string id)
{
return ModifiedPlugins.Contains(id);
Expand Down
24 changes: 24 additions & 0 deletions Flow.Launcher.Core/Resource/Theme.cs
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,30 @@ private ResourceDictionary GetResourceDictionary(string theme)
=> Array.ForEach(setters, p => o.Setters.Add(p)));
}

var baseHomeIconStyle = dict["BaseHomeIconFontStyle"] as Style;
var itemTitleStyle = (dict["ItemTitleStyle"] ?? dict["BaseItemTitleStyle"]) as Style;
var homeIconFontStyle = dict["HomeIconFontStyle"] as Style;

if (homeIconFontStyle == null && itemTitleStyle != null)
{
var styleToExtend = baseHomeIconStyle ?? itemTitleStyle;
var dynamicHomeStyle = new Style(typeof(TextBlock), styleToExtend);

var foregroundSetter = itemTitleStyle.Setters
.OfType<Setter>()
.FirstOrDefault(s => s.Property == TextBlock.ForegroundProperty);

if (foregroundSetter != null)
{
dynamicHomeStyle.Setters.Add(new Setter(TextBlock.ForegroundProperty, foregroundSetter.Value));
}
else if (baseHomeIconStyle != null)
{
dynamicHomeStyle.Setters.Add(new Setter(TextBlock.ForegroundProperty, new DynamicResourceExtension("ItemTitleStyle")));
}
dict["HomeIconFontStyle"] = dynamicHomeStyle;
}

/* Ignore Theme Window Width and use setting */
var windowStyle = dict["WindowStyle"] as Style;
var width = _settings.WindowSize;
Expand Down
2 changes: 2 additions & 0 deletions Flow.Launcher.Infrastructure/Constant.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ public static class Constant
public static readonly string ImageIcon = Path.Combine(ImagesDirectory, "image.png");
public static readonly string HistoryIcon = Path.Combine(ImagesDirectory, "history.png");
public static readonly string SettingsIcon = Path.Combine(ImagesDirectory, "settings.png");
public static readonly string ResultsIcon = Path.Combine(ImagesDirectory, "results.png");
public static readonly string SearchIcon = Path.Combine(ImagesDirectory, "search.png");
Comment thread
Jack251970 marked this conversation as resolved.

public static string PythonPath;
public static string NodePath;
Expand Down
109 changes: 106 additions & 3 deletions Flow.Launcher.Infrastructure/UserSettings/Settings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ public bool ShowOpenResultHotkey
public string OpenContextMenuHotkey { get; set; } = $"Ctrl+O";
public string SettingWindowHotkey { get; set; } = $"Ctrl+I";
public string OpenHistoryHotkey { get; set; } = $"Ctrl+H";
public string GridModeHotkey { get; set; } = $"{KeyConstant.Ctrl} + G";
public string CycleHistoryUpHotkey { get; set; } = $"{KeyConstant.Alt} + Up";
public string CycleHistoryDownHotkey { get; set; } = $"{KeyConstant.Alt} + Down";
public string DialogJumpHotkey { get; set; } = $"{KeyConstant.Alt} + G";
Expand Down Expand Up @@ -125,6 +126,7 @@ public string Theme
public double QueryBoxFontSize { get; set; } = 16;
public double ResultItemFontSize { get; set; } = 16;
public double ResultSubItemFontSize { get; set; } = 13;
public double HomeScreenFontSize { get; set; } = 12;
public string QueryBoxFont { get; set; } = Win32Helper.GetSystemDefaultFont();
public string QueryBoxFontStyle { get; set; }
public string QueryBoxFontWeight { get; set; }
Expand All @@ -137,12 +139,52 @@ public string Theme
public string ResultSubFontStyle { get; set; }
public string ResultSubFontWeight { get; set; }
public string ResultSubFontStretch { get; set; }
public bool UseGlyphIcons { get; set; } = true;

private bool _useGlyphIcons = true;
public bool UseGlyphIcons
{
get => _useGlyphIcons;
set
{
if (_useGlyphIcons != value)
{
_useGlyphIcons = value;
OnPropertyChanged();
}
}
}

public bool UseAnimation { get; set; } = true;
public bool UseSound { get; set; } = true;
public double SoundVolume { get; set; } = 50;
public bool ShowBadges { get; set; } = false;
public bool ShowBadgesGlobalOnly { get; set; } = false;

private bool _showBadges = false;
public bool ShowBadges
{
get => _showBadges;
set
{
if (_showBadges != value)
{
_showBadges = value;
OnPropertyChanged();
}
}
}

private bool _showBadgesGlobalOnly = false;
public bool ShowBadgesGlobalOnly
{
get => _showBadgesGlobalOnly;
set
{
if (_showBadgesGlobalOnly != value)
{
_showBadgesGlobalOnly = value;
OnPropertyChanged();
}
}
}

private string _settingWindowFont { get; set; } = Win32Helper.GetSystemDefaultFont(false);
public string SettingWindowFont
Expand Down Expand Up @@ -389,6 +431,59 @@ public DoublePinyinSchemas DoublePinyinSchema
}
}

private bool _enablePinnedResults = false;
public bool EnablePinnedResults
{
get => _enablePinnedResults;
set
{
if (_enablePinnedResults != value)
{
_enablePinnedResults = value;
OnPropertyChanged();
}
}
}

private bool _shouldCleanPinnedResultsFromUninstalledPlugins = false;
/// <summary>
/// Flag that indicates whether to automatically clean pinned results that belong to uninstalled plugins.
/// When it is true, it means some plugins are uninstalled.
/// And we need to clean results of any pinned results associated with plugins that have been uninstalled.
/// </summary>
/// <remarks>
/// It does not need to be included in the settings since after restarting,
/// the results of uninstalled plugins cannot be constructed.
/// </remarks>
[JsonIgnore]
public bool ShouldCleanPinnedResultsFromUninstalledPlugins
{
get => _shouldCleanPinnedResultsFromUninstalledPlugins;
set
{
if (_shouldCleanPinnedResultsFromUninstalledPlugins != value)
{
_shouldCleanPinnedResultsFromUninstalledPlugins = value;
OnPropertyChanged();
}
}
}

private PinnedLayoutOptions _pinnedResultsLayout = PinnedLayoutOptions.List;
[JsonConverter(typeof(JsonStringEnumConverter))]
public PinnedLayoutOptions PinnedResultsLayout
{
get => _pinnedResultsLayout;
set
{
if (_pinnedResultsLayout != value)
{
_pinnedResultsLayout = value;
OnPropertyChanged();
}
}
}

public bool AlwaysPreview { get; set; } = false;

public bool AlwaysStartEn { get; set; } = false;
Expand Down Expand Up @@ -568,6 +663,8 @@ public List<RegisteredHotkeyData> RegisteredHotkeys
list.Add(new(SettingWindowHotkey, "SettingWindowHotkey", () => SettingWindowHotkey = ""));
if (!string.IsNullOrEmpty(OpenHistoryHotkey))
list.Add(new(OpenHistoryHotkey, "OpenHistoryHotkey", () => OpenHistoryHotkey = ""));
if (!string.IsNullOrEmpty(GridModeHotkey))
list.Add(new(GridModeHotkey, "GridModeHotkey", () => GridModeHotkey = ""));
if (!string.IsNullOrEmpty(OpenContextMenuHotkey))
list.Add(new(OpenContextMenuHotkey, "OpenContextMenuHotkey", () => OpenContextMenuHotkey = ""));
if (!string.IsNullOrEmpty(SelectNextPageHotkey))
Expand Down Expand Up @@ -722,4 +819,10 @@ public enum HistoryStyle
[EnumLocalizeKey(nameof(Localize.executedHistory))]
LastOpened
}

public enum PinnedLayoutOptions
{
List,
Comment thread
Jack251970 marked this conversation as resolved.
Grid
}
}
4 changes: 3 additions & 1 deletion Flow.Launcher/App.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -259,8 +259,10 @@ await API.StopwatchLogInfoAsync(ClassName, "Startup cost", async () =>

await PluginManager.InitializePluginsAsync(_mainVM);

// Refresh the history results after plugins are initialized so that we can parse the absolute icon paths
// Refresh the history results & pinned results after plugins are initialized
// so that we can parse the absolute icon paths
_mainVM.RefreshLastOpenedHistoryResults();
_mainVM.RefreshPinnedResults();

// Refresh home page after plugins are initialized because users may open main window during plugin initialization
// And home page is created without full plugin list
Expand Down
5 changes: 2 additions & 3 deletions Flow.Launcher/Helper/ResultHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,16 @@
using System.Threading.Tasks;
using Flow.Launcher.Core.Plugin;
using Flow.Launcher.Plugin;
using Flow.Launcher.Storage;

namespace Flow.Launcher.Helper;

#nullable enable

public static class ResultHelper
{
public static async Task<Result?> PopulateResultsAsync(LastOpenedHistoryResult item)
public static async Task<Result?> PopulateResultsAsync<T>(T item, string query) where T : Result
{
return await PopulateResultsAsync(item.PluginID, item.Query, item.Title, item.SubTitle, item.RecordKey);
return await PopulateResultsAsync(item.PluginID, query, item.Title, item.SubTitle, item.RecordKey);
}

public static async Task<Result?> PopulateResultsAsync(string pluginId, string trimmedQuery, string title, string subTitle, string recordKey)
Expand Down
Binary file added Flow.Launcher/Images/results.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions Flow.Launcher/Languages/en.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,17 @@
<system:String x:Key="autoUpdatePlugins">Auto update plugins</system:String>
<system:String x:Key="autoUpdatePluginsToolTip">Automatically check plugin updates and notify if there are any updates available</system:String>

<system:String x:Key="pinnedResults">Pinned Results</system:String>
<system:String x:Key="showPinnedResultsOnHomePage">Show pinned results on home page</system:String>
<system:String x:Key="pinnedResultsLayout">Pinned Results Layout</system:String>
<system:String x:Key="pinToFlow">Pin to Flow</system:String>
<system:String x:Key="unpinFromFlow">Unpin from Flow</system:String>
<system:String x:Key="pinResult">Pin Result</system:String>
<system:String x:Key="pinQuery">Pin Query</system:String>
<system:String x:Key="PinnedLayoutList">List</system:String>
<system:String x:Key="PinnedLayoutGrid">Grid</system:String>
<system:String x:Key="lastPinnedAt">Added to pinned: {0}</system:String>
<system:String x:Key="pinnedResultsEmpty">No pinned results yet</system:String>
<!-- Setting Plugin -->
<system:String x:Key="searchplugin">Search Plugin</system:String>
<system:String x:Key="searchpluginToolTip">Ctrl+F to search plugins</system:String>
Expand Down Expand Up @@ -304,6 +315,7 @@
<system:String x:Key="queryBoxFont">Query Box Font</system:String>
<system:String x:Key="resultItemFont">Result Title Font</system:String>
<system:String x:Key="resultSubItemFont">Result Subtitle Font</system:String>
<system:String x:Key="homeScreenFontSize">Home Font Size</system:String>
<system:String x:Key="resetCustomize">Reset</system:String>
<system:String x:Key="resetCustomizeToolTip">Reset to the recommended font and size settings.</system:String>
<system:String x:Key="ImportThemeSize">Import Theme Size</system:String>
Expand Down
40 changes: 21 additions & 19 deletions Flow.Launcher/MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,10 @@
Key="{Binding CycleHistoryUpHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding ReverseHistoryCommand}"
Modifiers="{Binding CycleHistoryUpHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding Settings.GridModeHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding ToggleGridModeCommand}"
Modifiers="{Binding Settings.GridModeHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
<KeyBinding
Key="{Binding CycleHistoryDownHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
Command="{Binding ForwardHistoryCommand}"
Expand Down Expand Up @@ -356,33 +360,26 @@
<ContentControl.Style>
<Style TargetType="ContentControl">
<Setter Property="Visibility" Value="Visible" />

<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=ResultListBox, Path=Items.Count}" Value="0" />
<Condition Binding="{Binding ElementName=ResultContextMenu, Path=Visibility}" Value="Collapsed" />
<Condition Binding="{Binding ElementName=History, Path=Visibility}" Value="Collapsed" />
<Condition Binding="{Binding ActualHeight, ElementName=PinnedResultGrid}" Value="0" />

<Condition Binding="{Binding HasItems, ElementName=ResultListBox}" Value="False" />

<Condition Binding="{Binding Visibility, ElementName=History}" Value="Collapsed" />

<Condition Binding="{Binding Visibility, ElementName=ResultContextMenu}" Value="Collapsed" />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="Visibility" Value="Collapsed" />
<Setter Property="Margin" Value="0" />
<Setter Property="Height" Value="0" />
</MultiDataTrigger.Setters>

<Setter Property="Visibility" Value="Collapsed" />
<Setter Property="Height" Value="0" />
</MultiDataTrigger>
</Style.Triggers>
<!--<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=ResultListBox, Path=Visibility}" Value="Visible">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=ResultContextMenu, Path=Visibility}" Value="Visible">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=History, Path=Visibility}" Value="Visible">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>-->
</Style>
</ContentControl.Style>

<Rectangle
Name="MiddleSeparator"
Width="Auto"
Expand Down Expand Up @@ -411,11 +408,16 @@
x:Name="ResultArea"
Grid.Column="0"
Grid.ColumnSpan="{Binding ResultAreaColumn}">

<!-- Pinned Results Grid -->
<flowlauncher:PinnedResultGrid x:Name="PinnedResultGrid" />

<ContentControl>
<flowlauncher:ResultListBox
x:Name="ResultListBox"
DataContext="{Binding Results}"
LeftClickResultCommand="{Binding LeftClickResultCommand}"
MouseSelectCommand="{Binding MouseSelectCommand}"
RightClickResultCommand="{Binding RightClickResultCommand}" />
</ContentControl>
<ContentControl>
Expand Down
Loading
Loading