diff --git a/src/Ursa/Controls/TitleBar/CaptionButtons.cs b/src/Ursa/Controls/TitleBar/CaptionButtons.cs index 6b0ac86..6d9a3c2 100644 --- a/src/Ursa/Controls/TitleBar/CaptionButtons.cs +++ b/src/Ursa/Controls/TitleBar/CaptionButtons.cs @@ -40,6 +40,8 @@ public class CaptionButtons: Avalonia.Controls.Chrome.CaptionButtons Button.ClickEvent.AddHandler((o, args) => OnRestore(), _restoreButton); Button.ClickEvent.AddHandler((o, args) => OnMinimize(), _minimizeButton); Button.ClickEvent.AddHandler((o, args) => OnToggleFullScreen(), _fullScreenButton); + + Window.WindowStateProperty.Changed.Subscribe(WindowStateChanged); if (this.HostWindow is not null && !HostWindow.CanResize) { _restoreButton.IsEnabled = false; @@ -47,13 +49,20 @@ public class CaptionButtons: Avalonia.Controls.Chrome.CaptionButtons UpdateVisibility(); } + private void WindowStateChanged(AvaloniaPropertyChangedEventArgs e) + { + if (e.NewValue.Value == WindowState.FullScreen) + { + _oldWindowState = e.OldValue.Value; + } + } + protected override void OnToggleFullScreen() { if (HostWindow != null) { if (HostWindow.WindowState != WindowState.FullScreen) { - _oldWindowState = HostWindow.WindowState; HostWindow.WindowState = WindowState.FullScreen; } else