diff --git a/Flow.Launcher.Plugin/EventHandler.cs b/Flow.Launcher.Plugin/EventHandler.cs
index 893b0ba80..47ab24757 100644
--- a/Flow.Launcher.Plugin/EventHandler.cs
+++ b/Flow.Launcher.Plugin/EventHandler.cs
@@ -39,7 +39,14 @@ namespace Flow.Launcher.Plugin
///
///
public delegate void VisibilityChangedEventHandler(object sender, VisibilityChangedEventArgs args);
-
+
+ ///
+ /// A delegate for when the actual application theme is changed
+ ///
+ ///
+ ///
+ public delegate void ActualApplicationThemeChangedEventHandler(object sender, ActualApplicationThemeChangedEventArgs args);
+
///
/// The event args for
///
@@ -77,4 +84,15 @@ namespace Flow.Launcher.Plugin
///
public Query Query { get; set; }
}
+
+ ///
+ /// The event args for
+ ///
+ public class ActualApplicationThemeChangedEventArgs : EventArgs
+ {
+ ///
+ /// if the application has changed actual theme
+ ///
+ public bool IsDark { get; init; }
+ }
}
diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs
index 64a39fa62..49f7ea6c5 100644
--- a/Flow.Launcher/ViewModel/MainViewModel.cs
+++ b/Flow.Launcher/ViewModel/MainViewModel.cs
@@ -22,6 +22,7 @@ using Flow.Launcher.Plugin;
using Flow.Launcher.Plugin.SharedCommands;
using Flow.Launcher.Storage;
using Microsoft.VisualStudio.Threading;
+using ModernWpf;
namespace Flow.Launcher.ViewModel
{
@@ -195,6 +196,18 @@ namespace Flow.Launcher.ViewModel
RegisterViewUpdate();
_ = RegisterClockAndDateUpdateAsync();
+
+ ThemeManager.Current.ActualApplicationThemeChanged += ThemeManager_ActualApplicationThemeChanged;
+ }
+
+ private void ThemeManager_ActualApplicationThemeChanged(ThemeManager sender, object args)
+ {
+ ActualApplicationThemeChanged?.Invoke(
+ Application.Current,
+ new ActualApplicationThemeChangedEventArgs()
+ {
+ IsDark = sender.ActualApplicationTheme == ApplicationTheme.Dark
+ });
}
private void RegisterViewUpdate()
@@ -821,6 +834,7 @@ namespace Flow.Launcher.ViewModel
public bool MainWindowVisibilityStatus { get; set; } = true;
public event VisibilityChangedEventHandler VisibilityChanged;
+ public event ActualApplicationThemeChangedEventHandler ActualApplicationThemeChanged;
public Visibility ClockPanelVisibility { get; set; }
public Visibility SearchIconVisibility { get; set; }
@@ -1975,6 +1989,7 @@ namespace Flow.Launcher.ViewModel
{
_resultsViewUpdateTask.Dispose();
}
+ ThemeManager.Current.ActualApplicationThemeChanged -= ThemeManager_ActualApplicationThemeChanged;
_disposed = true;
}
}