Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
 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);
     }
 }
Ejemplo n.º 3
0
        public void UpdateWindow(IWindow window, WindowUpdateType type, bool layout = true)
        {
            if (type == WindowUpdateType.Foreground)
            {
                _lastFocused = window;
            }

            if (layout)
            {
                DoLayout();
            }
        }