public VirtualScreen GetFurthestLeft() { VirtualScreen furthestLeft = null; var minX = double.MaxValue; foreach (var s in Screens.Values.SelectMany(x => x)) { var minForThisScreen = s.X; if (minForThisScreen < minX) { minX = minForThisScreen; furthestLeft = s; } } return(furthestLeft); }
public VirtualScreen GetFurthestRight() { VirtualScreen furthestRight = null; var maxX = double.MinValue; foreach (var s in Screens.Values.SelectMany(x => x)) { var maxForThisScreen = s.X + s.Width; if (maxForThisScreen > maxX) { maxX = maxForThisScreen; furthestRight = s; } } return(furthestRight); }
public bool Start() { _connection.Start(); _hook.Init(); //there is some kind of dpi awareness bug here on windows. not sure exactly what's up. VirtualScreen s = null; foreach (var display in _hook.GetDisplays()) { s = ClientState.ScreenConfiguration.AddScreen(display.X, display.Y, display.X, display.Y, display.Width, display.Height, ClientState.ClientName, ""); } _dispatcher.ClientCheckin(ClientState.ClientName, ClientState.ScreenConfiguration.Screens.Values.SelectMany(x => x).ToList()); _hook.Hook.SetMousePos(ClientState._lastPositionX, ClientState._lastPositionY); _hook.Start(); return(true); }
public VirtualScreen AddScreenBelow(VirtualScreen orig, double localX, double localY, double width, double height, string client, string connectionId) { return(AddScreen(localX, localY, orig.X, orig.Y + orig.Height, width, height, client, connectionId)); }