diff --git a/ArduinoAgent/ArduinoAgent.csproj b/ArduinoAgent/ArduinoAgent.csproj
index 4bcfaf9..328ebed 100644
--- a/ArduinoAgent/ArduinoAgent.csproj
+++ b/ArduinoAgent/ArduinoAgent.csproj
@@ -10,9 +10,9 @@
https://github.com/hawkeye-stan/msfs-popout-panel-manager
MSFSPopoutPanelManager.ArduinoAgent
x64
- 3.4.5.0
- 3.4.5.0
- 3.4.5.0
+ 3.4.6.0321
+ 3.4.6.0321
+ 3.4.6.0321
win-x64
Embedded
Debug;Release;DebugTouchPanel;ReleaseTouchPanel
diff --git a/Orchestration/Orchestration.csproj b/Orchestration/Orchestration.csproj
index fa8c4a2..0b93e53 100644
--- a/Orchestration/Orchestration.csproj
+++ b/Orchestration/Orchestration.csproj
@@ -10,9 +10,9 @@
https://github.com/hawkeye-stan/msfs-popout-panel-manager
MSFSPopoutPanelManager.Orchestration
x64
- 3.4.5.0
- 3.4.5.0
- 3.4.5.0
+ 3.4.6.0321
+ 3.4.6.0321
+ 3.4.6.0321
win-x64
Embedded
Debug;Release;DebugTouchPanel;ReleaseTouchPanel
diff --git a/Orchestration/PanelPopOutOrchestrator.cs b/Orchestration/PanelPopOutOrchestrator.cs
index 45b43bb..9e49057 100644
--- a/Orchestration/PanelPopOutOrchestrator.cs
+++ b/Orchestration/PanelPopOutOrchestrator.cs
@@ -14,7 +14,7 @@ namespace MSFSPopoutPanelManager.Orchestration
public class PanelPopOutOrchestrator : ObservableObject
{
// This will be replaced by a signal from Ready to Fly Skipper into webserver in version 4.0
- private const int READY_TO_FLY_BUTTON_APPEARANCE_DELAY = 2000;
+ private const int READY_TO_FLY_BUTTON_APPEARANCE_DELAY = 4000;
private int _builtInPanelConfigDelay;
internal ProfileData ProfileData { get; set; }
@@ -177,7 +177,7 @@ namespace MSFSPopoutPanelManager.Orchestration
if (AppSetting.UseAutoPanning)
InputEmulationManager.LoadCustomView(AppSetting.AutoPanningKeyBinding);
- var panelResults = ExecutePopoutAndSeparation();
+ var panelResults = ExecutePopout();
if (panelResults == null)
return;
@@ -203,24 +203,12 @@ namespace MSFSPopoutPanelManager.Orchestration
if (panelResults != null)
panelConfigs.AddRange(panelResults);
}
-
if (panelConfigs.Count == 0)
{
StatusMessageWriter.WriteMessage("No panels have been found. Please select at least one in-game panel.", StatusMessageType.Error, true);
return;
}
- // Line up all the panels
- for (var i = panelConfigs.Count - 1; i >= 0; i--)
- {
- if (panelConfigs[i].PanelType == PanelType.CustomPopout)
- {
- WindowActionManager.MoveWindow(panelConfigs[i].PanelHandle, panelConfigs[i].Top, panelConfigs[i].Left, panelConfigs[i].Width, panelConfigs[i].Height);
- PInvoke.SetForegroundWindow(panelConfigs[i].PanelHandle);
- Thread.Sleep(200);
- }
- }
-
if (panelConfigs.Count > 0)
{
if (ActiveProfile.PanelConfigs.Count > 0)
@@ -245,7 +233,7 @@ namespace MSFSPopoutPanelManager.Orchestration
}
}
- private List ExecutePopoutAndSeparation()
+ private List ExecutePopout()
{
List panels = new List();
@@ -261,18 +249,13 @@ namespace MSFSPopoutPanelManager.Orchestration
InputEmulationManager.PopOutPanel(x, y, AppSetting.UseLeftRightControlToPopOut);
- // Get an AceApp window with empty title
- var handle = PInvoke.FindWindow("AceApp", String.Empty);
+ // Get an AceApp window with non Microsoft Flight Simulator as window title
+ var handle = PInvoke.FindWindow("AceApp", null);
- // Need to move the window to upper left corner first. There is a possible bug in the game that panel pop out to full screen that prevents further clicking.
- if (handle != IntPtr.Zero)
- WindowActionManager.MoveWindow(handle, 0, 0, 1000, 500);
-
- // The joined panel is always the first panel that got popped out
- if (i > 1)
- SeparatePanel(panels[0].PanelHandle);
-
- handle = PInvoke.FindWindow("AceApp", String.Empty);
+ // Unable to find pop out window because of application delay
+ var simulatorProcess = WindowProcessManager.GetSimulatorProcess();
+ if (handle.Equals(simulatorProcess.Handle))
+ handle = IntPtr.Zero;
if (handle == IntPtr.Zero && i == 1)
{
@@ -285,9 +268,7 @@ namespace MSFSPopoutPanelManager.Orchestration
return null;
}
- // Fix SU10+ bug where pop out window after separation is huge
- if (i > 1)
- WindowActionManager.MoveWindow(handle, -8, 0, 800, 600);
+ var clientRect = WindowActionManager.GetClientRect(handle);
var panel = new PanelConfig();
panel.PanelHandle = handle;
@@ -296,8 +277,8 @@ namespace MSFSPopoutPanelManager.Orchestration
panel.PanelName = $"Panel{i}";
panel.Top = (i - 1) * 30;
panel.Left = (i - 1) * 30;
- panel.Width = 800;
- panel.Height = 600;
+ panel.Width = clientRect.Width;
+ panel.Height = clientRect.Height;
panels.Add(panel);
PInvoke.SetWindowText(panel.PanelHandle, panel.PanelName + " (Custom)");
@@ -313,18 +294,6 @@ namespace MSFSPopoutPanelManager.Orchestration
return panels;
}
- private void SeparatePanel(IntPtr hwnd)
- {
- // ToDo: Need to figure mouse click code to separate window
- PInvoke.SetForegroundWindow(hwnd);
- Thread.Sleep(500);
-
- // Find the magnifying glass coordinate
- var point = PanelAnalyzer.GetMagnifyingGlassIconCoordinate(hwnd);
-
- InputEmulationManager.LeftClick(point.X, point.Y);
- }
-
private List AddBuiltInPanels()
{
List builtinPanels = new List();
@@ -436,7 +405,14 @@ namespace MSFSPopoutPanelManager.Orchestration
else if (panel.PanelType == PanelType.BuiltInPopout)
savedPanelConfig = ActiveProfile.PanelConfigs.FirstOrDefault(s => s.PanelName == panel.PanelName);
- if (savedPanelConfig == null) return;
+ // Apply MSFS saved panel location if available since this panel is newly profiled
+ if (savedPanelConfig == null)
+ {
+ var rect = WindowActionManager.GetWindowRect(panel.PanelHandle);
+ panel.Top = rect.Top;
+ panel.Left = rect.Left;
+ return;
+ }
// Assign window handle to panel config
savedPanelConfig.PanelHandle = panel.PanelHandle;
diff --git a/README.md b/README.md
index 20b13d7..4e6a5d2 100644
--- a/README.md
+++ b/README.md
@@ -171,7 +171,7 @@ Perform your regular panel selection and once your touch capable panel has been
## User Profile Data Files
-The user plane profile data and application settings data are stored as JSON files under your "Documents" folder. (%userprofile%\Documents\MSFS Pop Out Panel Manager)
+The user plane profile data and application settings data are stored as JSON files under your "Documents" folder. (%userprofile%\Documents\MSFS Pop Out Manager)
* userprofiledata.json
diff --git a/Shared/Shared.csproj b/Shared/Shared.csproj
index 018dcbf..8e97251 100644
--- a/Shared/Shared.csproj
+++ b/Shared/Shared.csproj
@@ -11,9 +11,9 @@
https://github.com/hawkeye-stan/msfs-popout-panel-manager
MSFSPopoutPanelManager.Shared
x64
- 3.4.5.0
- 3.4.5.0
- 3.4.5.0
+ 3.4.6.0321
+ 3.4.6.0321
+ 3.4.6.0321
win-x64
Embedded
Debug;Release;DebugTouchPanel;ReleaseTouchPanel
diff --git a/SimconnectAgent/SimconnectAgent.csproj b/SimconnectAgent/SimconnectAgent.csproj
index af8db70..e61dea9 100644
--- a/SimconnectAgent/SimconnectAgent.csproj
+++ b/SimconnectAgent/SimconnectAgent.csproj
@@ -11,9 +11,9 @@
https://github.com/hawkeye-stan/msfs-popout-panel-manager
MSFSPopoutPanelManager.SimConnectAgent
x64
- 3.4.5.0
- 3.4.5.0
- 3.4.5.0
+ 3.4.6.0321
+ 3.4.6.0321
+ 3.4.6.0321
win-x64
Embedded
Debug;Release;DebugTouchPanel;ReleaseTouchPanel
diff --git a/TouchPanelAgent/TouchPanelAgent.csproj b/TouchPanelAgent/TouchPanelAgent.csproj
index 4d88009..00e8fbd 100644
--- a/TouchPanelAgent/TouchPanelAgent.csproj
+++ b/TouchPanelAgent/TouchPanelAgent.csproj
@@ -11,9 +11,9 @@
https://github.com/hawkeye-stan/msfs-popout-panel-manager
MSFSPopoutPanelManager.TouchPanelAgent
x64
- 3.4.5.0
- 3.4.5.0
- 3.4.5.0
+ 3.4.6.0321
+ 3.4.6.0321
+ 3.4.6.0321
win-x64
Embedded
Debug;Release;DebugTouchPanel;ReleaseTouchPanel
diff --git a/UserDataAgent/UserDataAgent.csproj b/UserDataAgent/UserDataAgent.csproj
index 5e9fa89..ad414ba 100644
--- a/UserDataAgent/UserDataAgent.csproj
+++ b/UserDataAgent/UserDataAgent.csproj
@@ -10,9 +10,9 @@
https://github.com/hawkeye-stan/msfs-popout-panel-manager
MSFSPopoutPanelManager.UserDataAgent
x64
- 3.4.5.0
- 3.4.5.0
- 3.4.5.0
+ 3.4.6.0321
+ 3.4.6.0321
+ 3.4.6.0321
win-x64
Embedded
Debug;Release;DebugTouchPanel;ReleaseTouchPanel
diff --git a/VERSION.md b/VERSION.md
index 4cea722..665dd44 100644
--- a/VERSION.md
+++ b/VERSION.md
@@ -1,6 +1,9 @@
# Version History
+## Version 3.4.6.0321
+* Added SU12 compatibility. This version is required for MSFS SU12 and is not compatible with earlier MSFS releases.
+
## Version 3.4.5
* Added new preference option by default to auto close MSFS Pop Out Manager when MSFS exits.
diff --git a/WebServer/WebServer.csproj b/WebServer/WebServer.csproj
index 19f800e..e6736dc 100644
--- a/WebServer/WebServer.csproj
+++ b/WebServer/WebServer.csproj
@@ -11,9 +11,9 @@
https://github.com/hawkeye-stan/msfs-popout-panel-manager
MSFSPopoutPanelManager.WebServer
x64
- 3.4.5.0
- 3.4.5.0
- 3.4.5.0
+ 3.4.6.0321
+ 3.4.6.0321
+ 3.4.6.0321
win-x64
Embedded
Debug;Release;DebugTouchPanel;ReleaseTouchPanel
diff --git a/WindowsAgent/InputEmulationManager.cs b/WindowsAgent/InputEmulationManager.cs
index 5ccdb24..bacfd9f 100644
--- a/WindowsAgent/InputEmulationManager.cs
+++ b/WindowsAgent/InputEmulationManager.cs
@@ -43,7 +43,6 @@ namespace MSFSPopoutPanelManager.WindowsAgent
public static void LeftClick(int x, int y)
{
- PInvoke.SetCursorPos(x, y); // Need to do this twice to overcome MSFS bug for separating pop out panels
PInvoke.SetCursorPos(x, y);
Thread.Sleep(300);
@@ -77,8 +76,7 @@ namespace MSFSPopoutPanelManager.WindowsAgent
Thread.Sleep(300);
PInvoke.SetCursorPos(x, y);
- PInvoke.SetCursorPos(x, y);
- Thread.Sleep(300);
+ Thread.Sleep(500);
if (useSecondaryKeys)
{
diff --git a/WindowsAgent/TouchEventManager.cs b/WindowsAgent/TouchEventManager.cs
index b75e699..8298792 100644
--- a/WindowsAgent/TouchEventManager.cs
+++ b/WindowsAgent/TouchEventManager.cs
@@ -141,10 +141,9 @@ namespace MSFSPopoutPanelManager.WindowsAgent
PInvoke.mouse_event(MOUSEEVENTF_LEFTUP, info.pt.X, info.pt.Y, 0, 0);
if (_isDragged)
{
- // Override GTN750 bug - must execute this to fix GTN750 cursor moving offscreen issue when doing touch and drag
Thread.Sleep(AppSetting.TouchScreenSettings.TouchDownUpDelay + 50);
PInvoke.SetCursorPos(info.pt.X, info.pt.Y);
- Thread.Sleep(100);
+ Thread.Sleep(AppSetting.TouchScreenSettings.TouchDownUpDelay + 50);
InputEmulationManager.LeftClickFast(info.pt.X, info.pt.Y);
_isDragged = false;
}
diff --git a/WindowsAgent/WindowsAgent.csproj b/WindowsAgent/WindowsAgent.csproj
index 33fd996..2e3a47f 100644
--- a/WindowsAgent/WindowsAgent.csproj
+++ b/WindowsAgent/WindowsAgent.csproj
@@ -11,9 +11,9 @@
https://github.com/hawkeye-stan/msfs-popout-panel-manager
MSFSPopoutPanelManager.WindowsAgent
x64
- 3.4.5.0
- 3.4.5.0
- 3.4.5.0
+ 3.4.6.0321
+ 3.4.6.0321
+ 3.4.6.0321
win-x64
Embedded
Debug;Release;DebugTouchPanel;ReleaseTouchPanel
diff --git a/WpfApp/WpfApp.csproj b/WpfApp/WpfApp.csproj
index 297599b..3b9855b 100644
--- a/WpfApp/WpfApp.csproj
+++ b/WpfApp/WpfApp.csproj
@@ -14,9 +14,9 @@
MSFSPopoutPanelManager.WpfApp
logo.ico
x64
- 3.4.5.0
- 3.4.5.0
- 3.4.5.0
+ 3.4.6.0321
+ 3.4.6.0321
+ 3.4.6.0321
win-x64
embedded
en
diff --git a/latestreleasenotes.txt b/latestreleasenotes.txt
index c44048b..04fb768 100644
--- a/latestreleasenotes.txt
+++ b/latestreleasenotes.txt
@@ -4,4 +4,4 @@ This release is a mandatory update for MSFS SU12.
Change Log:
-* Added SU12 compatibility. This version is required for MSFS SU12 and is not compatible with earlier MSFS releases.
+* Added SU12 compatibility. This version is required for MSFS SU12 and is not compatible with earlier MSFS releases.
\ No newline at end of file