From 6d9bbbab0237a2e7d73d3cdca140bcfe370388ba Mon Sep 17 00:00:00 2001
From: Ray Berezowski <6616212+rberezowski@users.noreply.github.com>
Date: Wed, 26 Aug 2026 22:04:26 -0400
Subject: [PATCH] Add launcher item tooltips
---
README.md | 1 +
TaskbarLauncher.csproj | 4 +--
Views/LauncherPopup.xaml.cs | 52 ++++++++++++++++++++++++++++++++++---
docs/INSTALL.md | 2 ++
4 files changed, 53 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index 3a891f6..f46f679 100644
--- a/README.md
+++ b/README.md
@@ -14,6 +14,7 @@ Download the compiled Windows release from:
- Global hotkey, default `Ctrl+Alt+Space`
- Search/filter in the launcher popup with parent menu context
- Keyboard navigation in the launcher popup
+- Tooltips for launcher items, menu paths, targets, and arguments
- Recent items section for quickly relaunching entries
- Nested menus, drag/drop ordering, and drag/drop item creation in Settings
- Right-click launcher entries to edit them in Settings
diff --git a/TaskbarLauncher.csproj b/TaskbarLauncher.csproj
index 4db4170..ff9fbd8 100644
--- a/TaskbarLauncher.csproj
+++ b/TaskbarLauncher.csproj
@@ -12,8 +12,8 @@
Ray Berezowski
Assets\AppIcon.ico
1.0.1
- 1.0.1.16
- 1.0.1.16
+ 1.0.1.17
+ 1.0.1.17
1.0.1
diff --git a/Views/LauncherPopup.xaml.cs b/Views/LauncherPopup.xaml.cs
index fd0120c..62472e5 100644
--- a/Views/LauncherPopup.xaml.cs
+++ b/Views/LauncherPopup.xaml.cs
@@ -146,7 +146,8 @@ public partial class LauncherPopup : Window
IsExpanded = expandMenusByDefault,
Margin = new Thickness(depth * 12, 4, 0, 4),
Focusable = true,
- Tag = item
+ Tag = item,
+ ToolTip = CreateItemToolTip(item)
};
expander.KeyDown += NavigationControl_KeyDown;
expander.Expanded += (_, _) => RebuildNavigationAndReposition();
@@ -168,7 +169,8 @@ public partial class LauncherPopup : Window
Margin = new Thickness(depth * 12, 2, 0, 2),
MinHeight = DisplayModeMetrics.GetRowHeight(GetEffectiveDisplayMode(item)),
HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left,
- Tag = item
+ Tag = item,
+ ToolTip = CreateItemToolTip(item)
};
button.Click += (_, _) => launchItem(item);
@@ -204,7 +206,8 @@ public partial class LauncherPopup : Window
return new TextBlock
{
Text = item.Title,
- ContextMenu = contextMenu
+ ContextMenu = contextMenu,
+ ToolTip = CreateItemToolTip(item)
};
}
@@ -354,7 +357,8 @@ public partial class LauncherPopup : Window
MinHeight = Math.Max(DisplayModeMetrics.GetRowHeight(GetEffectiveDisplayMode(match.Item)), 48),
HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left,
Tag = match.Item,
- ContextMenu = CreateItemContextMenu(match.Item)
+ ContextMenu = CreateItemContextMenu(match.Item),
+ ToolTip = CreateItemToolTip(match.Item, match.ParentPath)
};
button.Click += (_, _) => launchItem(match.Item);
@@ -423,6 +427,46 @@ public partial class LauncherPopup : Window
return panel;
}
+ private static System.Windows.Controls.ToolTip CreateItemToolTip(LauncherItem item, string? parentPath = null)
+ {
+ StackPanel panel = new() { MaxWidth = 520 };
+ AddToolTipLine(panel, item.Title, bold: true);
+ AddToolTipLine(panel, $"Type: {item.Type}");
+
+ if (!string.IsNullOrWhiteSpace(parentPath))
+ {
+ AddToolTipLine(panel, $"Menu: {parentPath}");
+ }
+
+ if (!string.IsNullOrWhiteSpace(item.Target))
+ {
+ AddToolTipLine(panel, $"Target: {item.Target}");
+ }
+
+ if (!string.IsNullOrWhiteSpace(item.Arguments))
+ {
+ AddToolTipLine(panel, $"Arguments: {item.Arguments}");
+ }
+
+ if (item.IsFavorite)
+ {
+ AddToolTipLine(panel, "Pinned to top");
+ }
+
+ return new System.Windows.Controls.ToolTip { Content = panel };
+ }
+
+ private static void AddToolTipLine(StackPanel panel, string text, bool bold = false)
+ {
+ panel.Children.Add(new TextBlock
+ {
+ Text = text,
+ FontWeight = bold ? FontWeights.SemiBold : FontWeights.Normal,
+ TextWrapping = TextWrapping.Wrap,
+ Margin = panel.Children.Count == 0 ? new Thickness(0) : new Thickness(0, 3, 0, 0)
+ });
+ }
+
private static void CollectMatches(IEnumerable items, string query, List parentNames, List matches)
{
foreach (LauncherItem item in GetDisplayItems(items))
diff --git a/docs/INSTALL.md b/docs/INSTALL.md
index 759bf1f..278fb84 100644
--- a/docs/INSTALL.md
+++ b/docs/INSTALL.md
@@ -30,6 +30,8 @@ Search results include the parent menu path when an item is inside a menu.
Use arrow keys, Home, End, Enter, and Escape to navigate the launcher popup from the keyboard.
+Hover over launcher items to see details such as type, menu path, target, and arguments.
+
## Configure
Open the tray menu and choose **Settings**.