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) { Rectangle windowBounds = BFS.Window.GetBounds(windowHandle); Rectangle monitorWorkArea = BFS.Monitor.GetMonitorWorkAreaByWindow(windowHandle); // check the top edge if (windowBounds.Y <= monitorWorkArea.Y) { BFS.Window.SetLocation(windowHandle, windowBounds.X, monitorWorkArea.Y); } // check the bottom edge if (windowBounds.Y + windowBounds.Height > monitorWorkArea.Height) { BFS.Window.SetLocation(windowHandle, windowBounds.X, monitorWorkArea.Height - windowBounds.Height); } // check the left edge if (windowBounds.X <= monitorWorkArea.X) { BFS.Window.SetLocation(windowHandle, monitorWorkArea.X, windowBounds.Y); } // check the right edge if (windowBounds.X + windowBounds.Width - monitorWorkArea.X > monitorWorkArea.Width) { BFS.Window.SetLocation(windowHandle, monitorWorkArea.X + monitorWorkArea.Width - windowBounds.Width, windowBounds.Y); } } }