using System;
using System.Drawing;
// The 'windowHandle' parameter will contain the window handle for the:
// - Active window when run by hotkey
// - Trigger target when run by a Trigger rule
// - TitleBar Button owner when run by a TitleBar Button
// - Jump List owner when run from a Taskbar Jump List
// - Currently focused window if none of these match
public static class DisplayFusionFunction
{
public static void Run(IntPtr windowHandle)
{
// Get the mouse position
Point mousePosition = new Point(BFS.Input.GetMousePositionX(), BFS.Input.GetMousePositionY());
// Get the window size and location
Rectangle windowBounds = BFS.Window.GetBounds(windowHandle);
// Get an array of the bounds for all monitors ignoring splits
Rectangle[] monitorBoundsAll = BFS.Monitor.GetMonitorBoundsNoSplits();
// Loop through the array of bounds and move the window to the centre of whichever one the mouse cursor is on
foreach (Rectangle monitorBounds in monitorBoundsAll)
{
if (monitorBounds.Contains(mousePosition))
{
BFS.Window.SetLocation(windowHandle, monitorBounds.X + ((monitorBounds.Width - windowBounds.Width) / 2), monitorBounds.Y + ((monitorBounds.Height - windowBounds.Height) / 2));
}
}
}
}