From f1f86c428869b746c7602bbc9a5789c433b2fb18 Mon Sep 17 00:00:00 2001 From: BDisp Date: Mon, 26 Jul 2021 13:12:02 +0100 Subject: [PATCH] Fixes #1396. Using the Loaded event instead the Ready event. --- UICatalog/UICatalog.cs | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/UICatalog/UICatalog.cs b/UICatalog/UICatalog.cs index 883ab7d00..6b1133250 100644 --- a/UICatalog/UICatalog.cs +++ b/UICatalog/UICatalog.cs @@ -273,20 +273,31 @@ namespace UICatalog { _top.Add (_rightPane); _top.Add (_statusBar); - _top.Loaded += () => { + void TopHandler () { if (_runningScenario != null) { _runningScenario = null; _isFirstRunning = false; } - }; - void ReadyHandler () - { if (!_isFirstRunning) { _rightPane.SetFocus (); } - _top.Ready -= ReadyHandler; + _top.Loaded -= TopHandler; } - _top.Ready += ReadyHandler; + _top.Loaded += TopHandler; + // The following code was moved to the TopHandler event + // because in the MainLoop.EventsPending (wait) + // from the Application.RunLoop with the WindowsDriver + // the OnReady event is triggered due the Focus event. + // On CursesDriver and NetDriver the focus event won't be triggered + // and if it's possible I don't know how to do it. + //void ReadyHandler () + //{ + // if (!_isFirstRunning) { + // _rightPane.SetFocus (); + // } + // _top.Ready -= ReadyHandler; + //} + //_top.Ready += ReadyHandler; Application.Run (_top); return _runningScenario;