Example #1
0
        void OnCloseComplete(IModalHandle closedHandle)
        {
            closedHandle.CloseCompleteEvent -= OnCloseComplete;
            closedHandle.Destroy();

            if (closedHandle == _current)
            {
                _current = null;
            }
            else
            {
                _sustainedModals.Remove(closedHandle);
                _queueModals.Remove(closedHandle);
            }

            if (_sustainedModals.Count > 0)
            {
                _current = _sustainedModals [_sustainedModals.Count - 1];
                _sustainedModals.RemoveAt(_sustainedModals.Count - 1);
                _current.RetunToForeground();
            }
            else if (_queueModals.Count > 0)
            {
                Open(_queueModals [0]);
                _queueModals.RemoveAt(0);
            }
            else
            {
                if (_modalsCanvas != null)
                {
                    _modalsCanvas.HideMask();
                }
            }
        }