瀏覽代碼

Merge pull request #1397 from BDisp/uicatalog-focus-fix

Fixes #1396. Using the Loaded event instead the Ready event.
Charlie Kindel 4 年之前
父節點
當前提交
a660f21e3f
共有 1 個文件被更改,包括 17 次插入6 次删除
  1. 17 6
      UICatalog/UICatalog.cs

+ 17 - 6
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;