public void UpdateWindow(IWindow window, WindowUpdateType type) { if (_windowsToWorkspaces.ContainsKey(window)) { Logger.Trace("UpdateWindow({0})", window); var workspace = _windowsToWorkspaces[window]; if (window.IsFocused) { var monitor = _context.WorkspaceContainer.GetCurrentMonitorForWorkspace(workspace); if (monitor != null) { _context.MonitorContainer.FocusedMonitor = monitor; } else { if (type == WindowUpdateType.Foreground) { // TODO: show flash for workspace (in bar?) Logger.Trace("workspace.IsIndicating = true for workspace {0}", workspace); workspace.IsIndicating = true; WorkspaceUpdated?.Invoke(); } } if (type == WindowUpdateType.Move) { TrySwapWindowToMouse(window); } _windowsToWorkspaces[window].UpdateWindow(window, type); WindowUpdated?.Invoke(window, workspace); } } }
private void UpdateWindow(IntPtr handle, WindowUpdateType type) { if (type == WindowUpdateType.Show && _windows.ContainsKey(handle)) { var window = _windows[handle]; WindowUpdated?.Invoke(window, type); } else if (type == WindowUpdateType.Show) { RegisterWindow(handle); } else if (type == WindowUpdateType.Hide && _windows.ContainsKey(handle)) { var window = _windows[handle]; if (!window.DidManualHide) { UnregisterWindow(handle); } else { WindowUpdated?.Invoke(window, type); } } else if (_windows.ContainsKey(handle)) { var window = _windows[handle]; WindowUpdated?.Invoke(window, type); } }
public void UpdateWindow(IWindow window, WindowUpdateType type, bool layout = true) { if (type == WindowUpdateType.Foreground) { _lastFocused = window; } if (layout) { DoLayout(); } }