diff --git a/Terminal.Gui/ViewBase/View.Command.cs b/Terminal.Gui/ViewBase/View.Command.cs
index 0ab3578a4..1e57c8ae3 100644
--- a/Terminal.Gui/ViewBase/View.Command.cs
+++ b/Terminal.Gui/ViewBase/View.Command.cs
@@ -256,8 +256,16 @@ public partial class View // Command APIs
/// event. The default handler calls this method.
///
///
- /// The event should be raised after the state of the View has been changed and before see
- /// .
+ ///
+ /// The event should be raised after the state of the View has been changed and before see
+ /// .
+ ///
+ ///
+ /// If the event is not handled and the is not null, the event will be propagated
+ /// to the 's method, allowing hierarchical components
+ /// (e.g. ) to handle activation events from subviews. Derived classes can override
+ /// to implement custom propagation handling.
+ ///
///
///
/// if no event was raised; input processing should continue.
@@ -280,6 +288,17 @@ public partial class View // Command APIs
// If the event is not canceled by the virtual method, raise the event to notify any external subscribers.
Activating?.Invoke (this, args);
+ // If the event was not handled and there's a SuperView, propagate the event up the hierarchy.
+ // This allows hierarchical components like MenuBar to handle activation events from subviews.
+ if (!args.Handled && SuperView is { })
+ {
+ bool? superResult = SuperView.RaiseActivating (ctx);
+ if (superResult is true)
+ {
+ return true;
+ }
+ }
+
return Activating is null ? null : args.Handled;
}