Ejemplo n.º 1
0
        private void RefreshThumbnails()
        {
            IntPtr  foregroundWindowHandle = WindowManagerNativeMethods.GetForegroundWindow();
            Boolean hideAllThumbnails      = (this._configuration.HideThumbnailsOnLostFocus && this.IsNonClientWindowActive(foregroundWindowHandle)) || !WindowManagerNativeMethods.DwmIsCompositionEnabled();

            this.DisableViewEvents();

            // Hide, show, resize and move
            foreach (KeyValuePair <IntPtr, IThumbnailView> entry in this._thumbnailViews)
            {
                IThumbnailView view = entry.Value;

                if (hideAllThumbnails || !view.IsEnabled)
                {
                    if (view.IsActive)
                    {
                        view.Hide();
                    }
                    continue;
                }

                if (this._configuration.HideActiveClientThumbnail && (view.Id == this._activeClientHandle))
                {
                    if (view.IsActive)
                    {
                        view.Hide();
                    }
                    continue;
                }

                // No need to update Thumbnails while one of them is highlighted
                if (!this._isHoverEffectActive)
                {
                    // Do not even move thumbnails with default caption
                    if (view.Title != ThumbnailManager.DefaultClientTitle)
                    {
                        view.ThumbnailLocation = this._configuration.GetThumbnailLocation(view.Title, this._activeClientTitle, view.ThumbnailLocation);
                    }

                    view.SetOpacity(this._configuration.ThumbnailOpacity);
                    view.SetTopMost(this._configuration.ShowThumbnailsAlwaysOnTop);
                }

                view.IsOverlayEnabled = this._configuration.ShowThumbnailOverlays;

                view.SetHighlight(this._configuration.EnableActiveClientHighlight && (view.Id == this._activeClientHandle),
                                  this._configuration.ActiveClientHighlightColor, this._configuration.ActiveClientHighlightThickness);

                if (!view.IsActive)
                {
                    view.Show();
                }
                else
                {
                    view.Refresh(false);
                }
            }

            this.EnableViewEvents();
        }
Ejemplo n.º 2
0
        public void RefreshThumbnails()
        {
            IntPtr  foregroundWindowHandle = DwmApiNativeMethods.GetForegroundWindow();
            Boolean hideAllThumbnails      = (this._configuration.HideThumbnailsOnLostFocus && this.IsNonClientWindowActive(foregroundWindowHandle)) || !DwmApiNativeMethods.DwmIsCompositionEnabled();

            this.DisableViewEvents();

            // Hide, show, resize and move
            foreach (KeyValuePair <IntPtr, IThumbnailView> entry in this._thumbnailViews)
            {
                IThumbnailView view = entry.Value;

                if (hideAllThumbnails || !view.IsEnabled)
                {
                    if (view.IsActive)
                    {
                        view.Hide();
                    }
                    continue;
                }

                if (this._configuration.HideActiveClientThumbnail && (view.Id == this._activeClientHandle))
                {
                    if (view.IsActive)
                    {
                        view.Hide();
                    }
                    continue;
                }

                if (!this._isHoverEffectActive)
                {
                    // No need to move Thumbnails while one of them is highlighted
                    view.ThumbnailLocation = this._configuration.GetThumbnailLocation(view.Title, this._activeClientTitle, view.ThumbnailLocation);
                    view.SetOpacity(this._configuration.ThumbnailsOpacity);
                    view.SetTopMost(this._configuration.ShowThumbnailsAlwaysOnTop);
                }

                view.IsOverlayEnabled = this._configuration.ShowThumbnailOverlays;

                if (!view.IsActive)
                {
                    view.Show();
                }
                else
                {
                    view.Refresh(false);
                }
            }

            this.EnableViewEvents();
        }