1
0
Fork 0
mirror of https://github.com/hawkeye-stan/msfs-popout-panel-manager.git synced 2024-12-27 14:52:01 +00:00

Merged v3.4.6.0321 Release

This commit is contained in:
hawkeye 2023-05-21 10:32:15 -04:00
parent 5743caf8ec
commit f4c8abe148
15 changed files with 54 additions and 78 deletions

View file

@ -10,9 +10,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.ArduinoAgent</RootNamespace>
<Platforms>x64</Platforms>
<Version>3.4.5.0</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion>
<Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -10,9 +10,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.Orchestration</RootNamespace>
<Platforms>x64</Platforms>
<Version>3.4.5.0</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion>
<Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -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<PanelConfig> ExecutePopoutAndSeparation()
private List<PanelConfig> ExecutePopout()
{
List<PanelConfig> panels = new List<PanelConfig>();
@ -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<PanelConfig> AddBuiltInPanels()
{
List<PanelConfig> builtinPanels = new List<PanelConfig>();
@ -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;

View file

@ -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

View file

@ -11,9 +11,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.Shared</RootNamespace>
<Platforms>x64</Platforms>
<Version>3.4.5.0</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion>
<Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -11,9 +11,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.SimConnectAgent</RootNamespace>
<Platforms>x64</Platforms>
<Version>3.4.5.0</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion>
<Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -11,9 +11,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.TouchPanelAgent</RootNamespace>
<Platforms>x64</Platforms>
<Version>3.4.5.0</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion>
<Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -10,9 +10,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.UserDataAgent</RootNamespace>
<Platforms>x64</Platforms>
<Version>3.4.5.0</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion>
<Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -1,6 +1,9 @@
# Version History
<hr/>
## 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.

View file

@ -11,9 +11,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.WebServer</RootNamespace>
<Platforms>x64</Platforms>
<Version>3.4.5.0</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion>
<Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -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)
{

View file

@ -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;
}

View file

@ -11,9 +11,9 @@
<PackageProjectUrl>https://github.com/hawkeye-stan/msfs-popout-panel-manager</PackageProjectUrl>
<RootNamespace>MSFSPopoutPanelManager.WindowsAgent</RootNamespace>
<Platforms>x64</Platforms>
<Version>3.4.5.0</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion>
<Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>Embedded</DebugType>
<Configurations>Debug;Release;DebugTouchPanel;ReleaseTouchPanel</Configurations>

View file

@ -14,9 +14,9 @@
<RootNamespace>MSFSPopoutPanelManager.WpfApp</RootNamespace>
<ApplicationIcon>logo.ico</ApplicationIcon>
<Platforms>x64</Platforms>
<Version>3.4.5.0</Version>
<AssemblyVersion>3.4.5.0</AssemblyVersion>
<FileVersion>3.4.5.0</FileVersion>
<Version>3.4.6.0321</Version>
<AssemblyVersion>3.4.6.0321</AssemblyVersion>
<FileVersion>3.4.6.0321</FileVersion>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<DebugType>embedded</DebugType>
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>

View file

@ -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.