diff --git a/build/Common.props b/build/Common.props
index 3c65873e3..8932faff4 100644
--- a/build/Common.props
+++ b/build/Common.props
@@ -41,6 +41,11 @@
$(DefineConstants);PLATFORM_MACOS
+
+
+ $(DefineConstants);PLATFORM_LINUX
+
+
\ No newline at end of file
diff --git a/src/AtomUI.Controls/Window/Window.cs b/src/AtomUI.Controls/Window/Window.cs
index c6b0adfd2..09d99d74d 100644
--- a/src/AtomUI.Controls/Window/Window.cs
+++ b/src/AtomUI.Controls/Window/Window.cs
@@ -1,3 +1,6 @@
+using Avalonia;
+using Avalonia.Controls;
+
namespace AtomUI.Controls;
using AvaloniaWindow = Avalonia.Controls.Window;
@@ -5,4 +8,25 @@ using AvaloniaWindow = Avalonia.Controls.Window;
public class Window : AvaloniaWindow
{
protected override Type StyleKeyOverride { get; } = typeof(Window);
+
+ private WindowState? _originState;
+
+ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
+ {
+ base.OnPropertyChanged(change);
+ if (change.Property == WindowStateProperty)
+ {
+ if (change.NewValue is WindowState newState)
+ {
+ if (newState == WindowState.FullScreen)
+ {
+ _originState = change.GetOldValue();
+ }
+ else
+ {
+ WindowState = _originState.HasValue ? _originState.Value : newState;;
+ }
+ }
+ }
+ }
}
\ No newline at end of file