Exemplo n.º 1
0
        public void SwitchFocusedMonitorToMouseLocation()
        {
            Logger.Debug("SwitchFocusedMonitorToMouseLocation");
            var loc     = Control.MousePosition;
            var screen  = Screen.FromPoint(new Point(loc.X, loc.Y));
            var monitor = _context.MonitorContainer.GetMonitorAtPoint(loc.X, loc.Y);

            _context.MonitorContainer.FocusedMonitor = monitor;
            FocusedMonitorUpdated?.Invoke();
        }
Exemplo n.º 2
0
        public void SwitchFocusToPreviousMonitor()
        {
            var focusedMonitor = _context.MonitorContainer.FocusedMonitor;
            var targetMonitor  = _context.MonitorContainer.GetPreviousMonitor();

            if (focusedMonitor != targetMonitor)
            {
                _context.MonitorContainer.FocusedMonitor = targetMonitor;
                FocusedWorkspace.FocusLastFocusedWindow();

                FocusedMonitorUpdated?.Invoke();
            }
        }
Exemplo n.º 3
0
        public void SwitchFocusedMonitor(int index)
        {
            Logger.Debug("SwitchFocusedMonitor({0})", index);

            var focusedMonitor = _context.MonitorContainer.FocusedMonitor;

            if (index < _context.MonitorContainer.NumMonitors && index >= 0)
            {
                var monitor = _context.MonitorContainer.GetMonitorAtIndex(index);
                if (focusedMonitor != monitor)
                {
                    _context.MonitorContainer.FocusedMonitor = monitor;
                    FocusedWorkspace.FocusLastFocusedWindow();

                    FocusedMonitorUpdated?.Invoke();
                }
            }
        }
Exemplo n.º 4
0
        public void MoveFocusedWindowToPreviousMonitor()
        {
            Logger.Debug("MoveFocusedWindowToPreviousMonitor");
            var window          = FocusedWorkspace.FocusedWindow;
            var focusedMonitor  = _context.MonitorContainer.FocusedMonitor;
            var targetMonitor   = _context.MonitorContainer.GetPreviousMonitor();
            var targetWorkspace = _context.WorkspaceContainer.GetWorkspaceForMonitor(targetMonitor);

            if (window != null && targetWorkspace != null)
            {
                FocusedWorkspace.RemoveWindow(window);
                targetWorkspace.AddWindow(window);

                _windowsToWorkspaces[window] = targetWorkspace;
                WindowMoved?.Invoke(window, FocusedWorkspace, targetWorkspace);
                if (focusedMonitor != targetMonitor)
                {
                    _context.MonitorContainer.FocusedMonitor = targetMonitor;
                    window.Focus();
                    FocusedMonitorUpdated?.Invoke();
                }
            }
        }