MonoDevelop.Components.Commands.CommandManager.RegisterTopWindow C# (CSharp) Method

RegisterTopWindow() private method

private RegisterTopWindow ( Gtk win ) : void
win Gtk
return void
		internal void RegisterTopWindow (Gtk.Window win)
		{
			if (topLevelWindows.First != null && topLevelWindows.First.Value == win)
				return;

			// Ensure all events that were subscribed in StartWaitingForUserInteraction are unsubscribed
			// before doing any change to the topLevelWindows list
			EndWaitingForUserInteraction ();

			var node = topLevelWindows.Find (win);
			if (node != null) {
				if (win.HasToplevelFocus) {
					topLevelWindows.Remove (node);
					topLevelWindows.AddFirst (node);
				}
			} else {
				topLevelWindows.AddFirst (win);
				win.KeyPressEvent += OnKeyPressed;
				win.KeyReleaseEvent += OnKeyReleased;
				win.ButtonPressEvent += HandleButtonPressEvent;
				win.Destroyed += TopLevelDestroyed;
			}
		}