Table of Contents

Property RunnableSessionStack

Namespace
Terminal.Gui.App
Assembly
Terminal.Gui.dll

RunnableSessionStack

Gets the stack of all active runnable session tokens. Sessions execute serially - the top of stack is the currently modal session.

public ConcurrentStack<RunnableSessionToken>? RunnableSessionStack { get; }

Property Value

ConcurrentStack<RunnableSessionToken>

Remarks

Session tokens are pushed onto the stack when Run(IRunnable, Func<Exception, bool>?) is called and popped when RequestStop(IRunnable?) completes. The stack grows during nested modal calls and shrinks as they complete.

Only the top session (TopRunnable) has exclusive keyboard/mouse input ( IsModal = true). All other sessions on the stack continue to be laid out, drawn, and receive iteration events ( IsRunning = true), but they don't receive user input.

Stack during nested modals:
RunnableSessionStack (top to bottom):
    - MessageBox (TopRunnable, IsModal=true, IsRunning=true, has input)
    - FileDialog (IsModal=false, IsRunning=true, continues to update/draw)
    - MainWindow (IsModal=false, IsRunning=true, continues to update/draw)