diff --git a/src/Eto.Wpf/Forms/WpfWindow.cs b/src/Eto.Wpf/Forms/WpfWindow.cs index 257dbbd266..bae4db526c 100644 --- a/src/Eto.Wpf/Forms/WpfWindow.cs +++ b/src/Eto.Wpf/Forms/WpfWindow.cs @@ -227,7 +227,11 @@ public override void AttachEvent(string id) Control.Activated += (sender, e) => Callback.OnGotFocus(Widget, EventArgs.Empty); break; case Eto.Forms.Control.LostFocusEvent: - Control.LostKeyboardFocus += (sender, e) => Callback.OnLostFocus(Widget, EventArgs.Empty); + // LostKeyboardFocus is called for every child, only fire event when the form is no longer active + Control.LostKeyboardFocus += (sender, e) => { + if (!Control.IsActive) + Callback.OnLostFocus(Widget, EventArgs.Empty); + }; break; case Window.LocationChangedEvent: Control.LocationChanged += (sender, e) => Callback.OnLocationChanged(Widget, EventArgs.Empty);