diff --git a/src/RemoteTech/UI/AbstractWindow.cs b/src/RemoteTech/UI/AbstractWindow.cs index 1e17c42bc..6bb6a82e4 100644 --- a/src/RemoteTech/UI/AbstractWindow.cs +++ b/src/RemoteTech/UI/AbstractWindow.cs @@ -49,6 +49,9 @@ public AbstractWindow(Guid id, String title, Rect position, WindowAlign align) Position = position; mInitialHeight = position.height + 15; mInitialWidth = position.width + 15; + + GameEvents.onHideUI.Add(OnHideUI); + GameEvents.onShowUI.Add(OnShowUI); } public Rect RequestPosition() { return Position; } @@ -65,10 +68,22 @@ public virtual void Show() Enabled = true; } + private void OnHideUI() + { + Enabled = false; + } + + private void OnShowUI() + { + Enabled = true; + } + public virtual void Hide() { Windows.Remove(mGuid); Enabled = false; + GameEvents.onHideUI.Remove(OnHideUI); + GameEvents.onShowUI.Remove(OnShowUI); } private void WindowPre(int uid) @@ -87,6 +102,7 @@ public virtual void Window(int uid) public virtual void Draw() { + if (!Enabled) return; if (Event.current.type == EventType.Layout) { Position.width = 0; diff --git a/src/RemoteTech/UI/FilterOverlay.cs b/src/RemoteTech/UI/FilterOverlay.cs index 515c74916..7756319af 100644 --- a/src/RemoteTech/UI/FilterOverlay.cs +++ b/src/RemoteTech/UI/FilterOverlay.cs @@ -56,6 +56,7 @@ static Style() private AntennaFragment mAntennaFragment = new AntennaFragment(null); private TargetInfoWindow mTargetInfos; private bool mEnabled; + private bool mShowOverlay = true; private bool onTrackingStation { get { return (HighLogic.LoadedScene == GameScenes.TRACKSTATION); } } private Rect Position @@ -175,9 +176,21 @@ private GUIStyle StyleStatusButton } } + private void OnHideUI() + { + mShowOverlay = false; + } + + private void OnShowUI() + { + mShowOverlay = true; + } + public FilterOverlay() { GameEvents.onPlanetariumTargetChanged.Add(OnChangeTarget); + GameEvents.onHideUI.Add(OnHideUI); + GameEvents.onShowUI.Add(OnShowUI); MapView.OnEnterMapView += OnEnterMapView; MapView.OnExitMapView += OnExitMapView; /// Add the on mouse over event @@ -201,6 +214,8 @@ public void Dispose() mAntennaFragment.onMouseOverListEntry -= showTargetInfo; GameEvents.onPlanetariumTargetChanged.Remove(OnChangeTarget); + GameEvents.onHideUI.Remove(OnHideUI); + GameEvents.onShowUI.Remove(OnShowUI); MapView.OnEnterMapView -= OnEnterMapView; MapView.OnExitMapView -= OnExitMapView; mSatelliteFragment.Dispose(); @@ -251,6 +266,7 @@ public void showTargetInfo() public void Draw() { + if (!mShowOverlay) return; GUI.depth = 0; GUI.skin = HighLogic.Skin; diff --git a/src/RemoteTech/UI/FocusOverlay.cs b/src/RemoteTech/UI/FocusOverlay.cs index 878498507..335eefb62 100644 --- a/src/RemoteTech/UI/FocusOverlay.cs +++ b/src/RemoteTech/UI/FocusOverlay.cs @@ -28,6 +28,7 @@ static Style() private FocusFragment mFocus = new FocusFragment(); private bool mEnabled; + private bool mShowOverlay; private Rect PositionButton { @@ -59,12 +60,16 @@ public FocusOverlay() { MapView.OnEnterMapView += OnEnterMapView; MapView.OnExitMapView += OnExitMapView; + GameEvents.onHideUI.Add(OnHideUI); + GameEvents.onShowUI.Add(OnShowUI); } public void Dispose() { MapView.OnEnterMapView -= OnEnterMapView; MapView.OnExitMapView -= OnExitMapView; + GameEvents.onHideUI.Remove(OnHideUI); + GameEvents.onShowUI.Remove(OnShowUI); } public void OnEnterMapView() @@ -78,8 +83,19 @@ public void OnExitMapView() RTCore.Instance.OnGuiUpdate -= Draw; } + private void OnHideUI() + { + mShowOverlay = false; + } + + private void OnShowUI() + { + mShowOverlay = true; + } + public void Draw() { + if (!mShowOverlay) return; GUI.depth = 0; GUI.skin = HighLogic.Skin;