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)); }
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); }
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); }