Changed KER version to 1.1.0.0.
Changed KER version to 1.1.0.0.

 Binary files a/Assets/Plugins/KerbalEngineer.Unity.dll and b/Assets/Plugins/KerbalEngineer.Unity.dll differ
--- a/Assets/Prefabs/Window.prefab
+++ b/Assets/Prefabs/Window.prefab
@@ -691,8 +691,8 @@
   m_RootOrder: 1
   m_AnchorMin: {x: 1, y: 0}
   m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 20, y: 0}
+  m_AnchoredPosition: {x: -2, y: 0}
+  m_SizeDelta: {x: 16, y: -4}
   m_Pivot: {x: 1, y: .5}
 --- !u!225 &22579498
 CanvasGroup:

--- a/Documents/CHANGES.txt
+++ b/Documents/CHANGES.txt
@@ -1,3 +1,4 @@
+1.1.0.0, XX-XX-16
     Added: Asset bundle loading and integration.
     Added: Styling system so that Unity UI objects can use KSP stock styles.
     Added: Unity UI window system.
@@ -6,6 +7,7 @@
     Changed: Flight Engineer toolbar menu recreated using Unity UI.
     Changed: Replaced occurances of IMGUI using RenderingManager to use OnGUI directly.
     Fixed: Toggling the 'Control Bar' now appropriately resizes the display stack.
+    Fixed: Part info tooltips in the editor remaining open when no part is selected.
 
 1.0.19.4, 12-02-16
     Fixed: Only 'STAGE_STACK_FLOW' and 'STAGE_STACK_FLOW_BALANCE' resources include surface mounted parts as fuel targets.

--- a/KerbalEngineer/Editor/BuildAdvanced.cs
+++ b/KerbalEngineer/Editor/BuildAdvanced.cs
@@ -812,15 +812,15 @@
                 // When not in compact mode draw the 'All Stages' and 'Atmospheric' toggles.
                 if (!compactMode)
                 {
-                    if (GUI.Button(new Rect(position.width - 143.0f * GuiDisplaySize.Offset, 5.0f, 70.0f * GuiDisplaySize.Offset, 20.0f), "SETTINGS", buttonStyle))
+                    //if (GUI.Button(new Rect(position.width - 143.0f * GuiDisplaySize.Offset, 5.0f, 70.0f * GuiDisplaySize.Offset, 20.0f), "SETTINGS", buttonStyle))
+                    //{
+                    //    SettingsWindow.Open();
+                    //}
+                    if (GUI.Toggle(new Rect(position.width - 143.0f * GuiDisplaySize.Offset, 5.0f, 70.0f * GuiDisplaySize.Offset, 20.0f), showSettings, "SETTINGS", buttonStyle) != showSettings)
                     {
-                        SettingsWindow.Open();
+                        hasChanged = true;
+                        showSettings = !showSettings;
                     }
-                    //if (GUI.Toggle(new Rect(position.width - 143.0f * GuiDisplaySize.Offset, 5.0f, 70.0f * GuiDisplaySize.Offset, 20.0f), showSettings, "SETTINGS", buttonStyle) != showSettings)
-                    //{
-                    //    hasChanged = true;
-                    //    showSettings = !showSettings;
-                    //}
 
                     if (GUI.Toggle(new Rect(position.width - 226.0f * GuiDisplaySize.Offset, 5.0f, 80.0f * GuiDisplaySize.Offset, 20.0f), showAllStages, "ALL STAGES", buttonStyle) != showAllStages)
                     {

--- a/KerbalEngineer/Editor/BuildOverlayPartInfo.cs
+++ b/KerbalEngineer/Editor/BuildOverlayPartInfo.cs
@@ -1,7 +1,7 @@
 // 
 //     Kerbal Engineer Redux
 // 
-//     Copyright (C) 2014 CYBUTEK
+//     Copyright (C) 2016 CYBUTEK
 // 
 //     This program is free software: you can redistribute it and/or modify
 //     it under the terms of the GNU General Public License as published by
@@ -12,10 +12,9 @@
 //     but WITHOUT ANY WARRANTY; without even the implied warranty of
 //     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 //     GNU General Public License for more details.
-// 
 //     You should have received a copy of the GNU General Public License
 //     along with this program.  If not, see <http://www.gnu.org/licenses/>.
-// 
+//  
 
 namespace KerbalEngineer.Editor
 {
@@ -102,7 +101,7 @@
                     return;
                 }
 
-                position = GUILayout.Window(GetInstanceID(), position, Window, String.Empty, BuildOverlay.WindowStyle);
+                position = GUILayout.Window(GetInstanceID(), position, Window, string.Empty, BuildOverlay.WindowStyle);
             }
             catch (Exception ex)
 
@@ -131,7 +130,16 @@
                     position.x = Input.mousePosition.x - 3 - position.width;
                 }
 
-                part = EditorLogic.fetch.ship.parts.Find(p => p.stackIcon.Highlighted) ?? EditorLogic.SelectedPart;
+                RaycastHit rayHit;
+                if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out rayHit))
+                {
+                    part = rayHit.transform.GetComponent<Part>();
+                }
+                else
+                {
+                    part = EditorLogic.fetch.ship.parts.Find(p => p.highlighter.highlighted) ?? EditorLogic.SelectedPart;
+                }
+
                 if (part != null)
                 {
                     if (!part.Equals(selectedPart))

--- a/KerbalEngineer/EngineerGlobals.cs
+++ b/KerbalEngineer/EngineerGlobals.cs
@@ -25,7 +25,7 @@
         /// <summary>
         ///     Current version of the Kerbal Engineer assembly.
         /// </summary>
-        public const string ASSEMBLY_VERSION = "1.0.19.4";
+        public const string ASSEMBLY_VERSION = "1.1.0.0";
 
         private static string assemblyFile;
         private static string assemblyName;

--- a/KerbalEngineer/Logger.cs
+++ b/KerbalEngineer/Logger.cs
@@ -19,31 +19,30 @@
 
 #region Using Directives
 
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using System.Reflection;
-
-using UnityEngine;
-
 #endregion
 
 namespace KerbalEngineer
 {
+    using System;
+    using System.Collections;
+    using System.Collections.Generic;
+    using System.IO;
+    using System.Reflection;
+    using UnityEngine;
+
     [KSPAddon(KSPAddon.Startup.Instantly, false)]
     public class Logger : MonoBehaviour
     {
+        #region Fields
+
+        private static readonly List<string[]> messages = new List<string[]>();
+
+        #endregion
+
         #region Constants
 
         private static readonly string fileName;
         private static readonly AssemblyName assemblyName;
-
-        #endregion
-
-        #region Fields
-
-        private static readonly List<string[]> messages = new List<string[]>();
 
         #endregion
 
@@ -86,50 +85,58 @@
             {
                 try
                 {
-                    if (obj is IEnumerable)
+                    messages.Add(new[] {"Log " + DateTime.Now.TimeOfDay, GetObjString(obj)});
+                }
+                catch (Exception ex)
+                {
+                    Exception(ex);
+                }
+            }
+        }
+
+        public static void Log(string name, object obj)
+        {
+            lock (messages)
+            {
+                try
+                {
+                    messages.Add(new[] {"Log " + DateTime.Now.TimeOfDay, name + "\n" + GetObjString(obj)});
+                }
+                catch (Exception ex)
+                {
+                    Exception(ex);
+                }
+            }
+        }
+
+        private static string GetObjString(object obj, int tabs = 0)
+        {
+            string objString;
+            string tabString = string.Empty;
+            for (int i = 0; i < tabs; i++)
+            {
+                tabString += " ";
+            }
+
+            if (obj != null)
+            {
+                objString = tabString + obj;
+
+                IEnumerable items = obj as IEnumerable;
+                if (items != null)
+                {
+                    foreach (object item in items)
                     {
-                        messages.Add(new[] {"Log " + DateTime.Now.TimeOfDay, obj.ToString()});
-                        foreach (var o in obj as IEnumerable)
-                        {
-                            messages.Add(new[] {"\t", o.ToString()});
-                        }
+                        objString += "\n" + GetObjString(item, tabs + 1);
                     }
-                    else
-                    {
-                        messages.Add(new[] {"Log " + DateTime.Now.TimeOfDay, obj.ToString()});
-                    }
-                }
-                catch (Exception ex)
-                {
-                    Exception(ex);
-                }
-            }
-        }
-
-        public static void Log(string name, object obj)
-        {
-            lock (messages)
-            {
-                try
-                {
-                    if (obj is IEnumerable)
-                    {
-                        messages.Add(new[] {"Log " + DateTime.Now.TimeOfDay, name});
-                        foreach (var o in obj as IEnumerable)
-                        {
-                            messages.Add(new[] {"\t", o.ToString()});
-                        }
-                    }
-                    else
-                    {
-                        messages.Add(new[] {"Log " + DateTime.Now.TimeOfDay, obj.ToString()});
-                    }
-                }
-                catch (Exception ex)
-                {
-                    Exception(ex);
-                }
-            }
+                }
+            }
+            else
+            {
+                objString = "Null";
+            }
+
+            return objString;
         }
 
         public static void Log(string message)
@@ -186,9 +193,9 @@
             {
                 if (messages.Count > 0)
                 {
-                    using (var file = File.AppendText(fileName))
+                    using (StreamWriter file = File.AppendText(fileName))
                     {
-                        foreach (var message in messages)
+                        foreach (string[] message in messages)
                         {
                             file.WriteLine(message.Length > 0 ? message.Length > 1 ? "[" + message[0] + "]: " + message[1] : message[0] : string.Empty);
                             if (message.Length > 0)

--- a/KerbalEngineer/Settings/SettingsWindow.cs
+++ b/KerbalEngineer/Settings/SettingsWindow.cs
@@ -28,10 +28,18 @@
             {
                 m_Window = StyleManager.CreateWindow("SETTINGS", 600.0f);
 
-                Setting keyBindings = StyleManager.CreateSetting("Key Bindings", m_Window);
-                AddButton(keyBindings, "EDIT KEY BINDINGS", 304.0f, KeyBinder.Show);
+                AddKeyBindingsButton();
+                AddFlightActivationModes();
+                AddBuildOverlayOptions();
 
+                StyleManager.Process(m_Window);
+            }
+        }
 
+        private static void AddBuildOverlayOptions()
+        {
+            if (m_Window != null)
+            {
                 Setting buildOverlay = StyleManager.CreateSetting("Build Engineer Overlay", m_Window);
                 Toggle buildOverlayVisible = AddToggle(buildOverlay, "VISIBLE", 100.0f, value => BuildOverlay.Visible = value);
                 Toggle buildOverlayNamesOnly = AddToggle(buildOverlay, "NAMES ONLY", 100.0f, value => BuildOverlayPartInfo.NamesOnly = value);
@@ -42,17 +50,6 @@
                     buildOverlayNamesOnly.isOn = BuildOverlayPartInfo.NamesOnly;
                     buildOverlayClickToOpen.isOn = BuildOverlayPartInfo.ClickToOpen;
                 });
-
-                Setting flightActivationMode = StyleManager.CreateSetting("Flight Engineer Activation Mode", m_Window);
-                Toggle flightActivationModeCareer = AddToggle(flightActivationMode, "CAREER", 100.0f, value => FlightEngineerCore.IsCareerMode = value);
-                Toggle flightActivationModePartless = AddToggle(flightActivationMode, "PARTLESS", 100.0f, value => FlightEngineerCore.IsCareerMode = !value);
-                AddUpdateHandler(flightActivationMode, () =>
-                {
-                    flightActivationModeCareer.isOn = FlightEngineerCore.IsCareerMode;
-                    flightActivationModePartless.isOn = !FlightEngineerCore.IsCareerMode;
-                });
-
-                StyleManager.Process(m_Window);
             }
         }
 
@@ -62,13 +59,37 @@
 
             if (setting != null)
             {
-                button = setting.AddButton(text,width, onClick);
+                button = setting.AddButton(text, width, onClick);
             }
 
             return button;
         }
 
-        private static Toggle AddToggle(Setting setting, string text,  float width,UnityAction<bool> onValueChanged)
+        private static void AddFlightActivationModes()
+        {
+            if (m_Window != null)
+            {
+                Setting flightActivationMode = StyleManager.CreateSetting("Flight Engineer Activation Mode", m_Window);
+                Toggle flightActivationModeCareer = AddToggle(flightActivationMode, "CAREER", 100.0f, value => FlightEngineerCore.IsCareerMode = value);
+                Toggle flightActivationModePartless = AddToggle(flightActivationMode, "PARTLESS", 100.0f, value => FlightEngineerCore.IsCareerMode = !value);
+                AddUpdateHandler(flightActivationMode, () =>
+                {
+                    flightActivationModeCareer.isOn = FlightEngineerCore.IsCareerMode;
+                    flightActivationModePartless.isOn = !FlightEngineerCore.IsCareerMode;
+                });
+            }
+        }
+
+        private static void AddKeyBindingsButton()
+        {
+            if (m_Window != null)
+            {
+                Setting keyBindings = StyleManager.CreateSetting("Key Bindings", m_Window);
+                AddButton(keyBindings, "EDIT KEY BINDINGS", 304.0f, KeyBinder.Show);
+            }
+        }
+
+        private static Toggle AddToggle(Setting setting, string text, float width, UnityAction<bool> onValueChanged)
         {
             Toggle toggle = null;
 

 Binary files a/Output/KerbalEngineer/KerbalEngineer and b/Output/KerbalEngineer/KerbalEngineer differ
 Binary files a/Output/KerbalEngineer/KerbalEngineer.Unity.dll and b/Output/KerbalEngineer/KerbalEngineer.Unity.dll differ
 Binary files a/Output/KerbalEngineer/KerbalEngineer.dll and b/Output/KerbalEngineer/KerbalEngineer.dll differ
--- a/Output/KerbalEngineer/KerbalEngineer.version
+++ b/Output/KerbalEngineer/KerbalEngineer.version
@@ -4,9 +4,9 @@
 	"VERSION":
 	{
 		"MAJOR":1,
-		"MINOR":0,
-		"PATCH":19,
-		"BUILD":4
+		"MINOR":1,
+		"PATCH":0,
+		"BUILD":0
 	},
 	"KSP_VERSION":
 	{

 Binary files a/Output/KerbalEngineer/prefabs and b/Output/KerbalEngineer/prefabs differ
--- a/Output/KerbalEngineer/prefabs.manifest
+++ b/Output/KerbalEngineer/prefabs.manifest
@@ -1,9 +1,9 @@
 ManifestFileVersion: 0
-CRC: 3210499501
+CRC: 247544766
 Hashes:
   AssetFileHash:
     serializedVersion: 2
-    Hash: 82a83dd0d6754676160fa0160fdd2f82
+    Hash: 6c0345330dfdd65954f99b5bf002cb14
   TypeTreeHash:
     serializedVersion: 2
     Hash: f08f4b318e7775189aba716ae3ef79f9