Example #1
0
        public ConfigContext()
        {
            _timer          = new System.Timers.Timer();
            _timer.Elapsed += (s, e) => UpdateActiveHandles();
            _timer.Interval = 5000;
            _timer.Enabled  = true;

            _pipeServer = new PipeServer();

            _defaultLayouts = () => new ILayoutEngine[] {
                new TallLayoutEngine(),
                new FullLayoutEngine()
            };
            _layoutProxies = new List <Func <ILayoutEngine, ILayoutEngine> >();

            SystemEvents.DisplaySettingsChanged += HandleDisplaySettingsChanged;

            Plugins    = new PluginManager();
            SystemTray = new SystemTrayManager();
            Workspaces = new WorkspaceManager(this);
            Windows    = new WindowsManager();
            Keybinds   = new KeybindManager(this);

            WorkspaceContainer = new WorkspaceContainer(this);
            WindowRouter       = new WindowRouter(this);
            MonitorContainer   = new NativeMonitorContainer();

            Windows.WindowCreated   += Workspaces.AddWindow;
            Windows.WindowDestroyed += Workspaces.RemoveWindow;
            Windows.WindowUpdated   += Workspaces.UpdateWindow;

            // ignore watcher windows in workspacer
            WindowRouter.AddFilter((window) => !(window.ProcessId == _pipeServer.WatcherProcess.Id));
        }
Example #2
0
        private List <IntPtr> GetActiveHandles()
        {
            var list = new List <IntPtr>();

            foreach (var ws in WorkspaceContainer.GetAllWorkspaces())
            {
                var handles = ws.ManagedWindows.Select(i => i.Handle);
                list.AddRange(handles);
            }
            return(list);
        }
Example #3
0
        private List <IntPtr> GetActiveHandles()
        {
            var list = new List <IntPtr>();

            foreach (var ws in WorkspaceContainer.GetAllWorkspaces())
            {
                foreach (var w in ws.Windows.Where(w => w.CanLayout))
                {
                    list.Add(w.Handle);
                }
            }
            return(list);
        }