Пример #1
0
        /// <summary>
        /// Destroy desktop and switch to <fallback>
        /// </summary>
        /// <param name="fallback"></param>
        public void Remove(VirtualDesktop fallback = null)
        {
            IVirtualDesktop fallbackdesktop;

            if (fallback == null)
            {
                // if no fallback is given use desktop to the left except for desktop 0.
                VirtualDesktop dtToCheck = new VirtualDesktop(DesktopManager.GetDesktop(0));
                if (this.Equals(dtToCheck))
                {
                    // desktop 0: set fallback to second desktop (= "right" desktop)
                    DesktopManager.VirtualDesktopManagerInternal.GetAdjacentDesktop(_VirtualDesktop, 4, out fallbackdesktop);                     // 4 = RightDirection
                }
                else
                {
                    // set fallback to "left" desktop
                    DesktopManager.VirtualDesktopManagerInternal.GetAdjacentDesktop(_VirtualDesktop, 3, out fallbackdesktop);                     // 3 = LeftDirection
                }
            }
            else
            {
                // set fallback desktop
                fallbackdesktop = fallback._VirtualDesktop;
            }

            DesktopManager.VirtualDesktopManagerInternal.RemoveDesktop(_VirtualDesktop, fallbackdesktop);
        }
Пример #2
0
        /// <summary>
        /// Returns true if application for window <hWnd> is pinned to all desktops
        /// </summary>
        /// <param name="hWnd"></param>
        /// <returns></returns>
        public static bool IsApplicationPinned(IntPtr hWnd)
        {
            if (hWnd == IntPtr.Zero)
            {
                throw new ArgumentNullException();
            }

            return(DesktopManager.VirtualDesktopPinnedApps.IsAppIdPinned(DesktopManager.GetAppId(hWnd)));
        }
Пример #3
0
        /// <summary>
        /// pin application for window <hWnd> to all desktops
        /// </summary>
        /// <param name="hWnd"></param>
        /// [Obsolete("This method will likely fail, as its sister method fails. It is kept here for reference.")]
        public static void PinApplication(IntPtr hWnd)
        {
            if (hWnd == IntPtr.Zero)
            {
                throw new ArgumentNullException();
            }

            string appId = DesktopManager.GetAppId(hWnd);

            if (!DesktopManager.VirtualDesktopPinnedApps.IsAppIdPinned(appId))
            {
                // pin only if not already pinned
                DesktopManager.VirtualDesktopPinnedApps.PinAppID(appId);
            }
        }
Пример #4
0
        /// <summary>
        /// unpin application for window <hWnd> from all desktops
        /// </summary>
        /// <param name="hWnd"></param>
        /// [Obsolete("This method will likely fail, as its sister method fails. It is kept here for reference.")]
        public static void UnpinApplication(IntPtr hWnd)
        {
            if (hWnd == IntPtr.Zero)
            {
                throw new ArgumentNullException();
            }

            var    view  = hWnd.GetApplicationView();
            string appId = DesktopManager.GetAppId(hWnd);

            if (DesktopManager.VirtualDesktopPinnedApps.IsAppIdPinned(appId))
            {
                // unpin only if already pinned
                DesktopManager.VirtualDesktopPinnedApps.UnpinAppID(appId);
            }
        }
Пример #5
0
 /// <summary>
 /// Returns index of desktop object or -1 if not found
 /// </summary>
 /// <param name="desktop"></param>
 /// <returns></returns>
 public static int GetIndex(VirtualDesktop desktop)
 {
     return(DesktopManager.GetDesktopIndex(desktop._VirtualDesktop));
 }
Пример #6
0
 /// <summary>
 /// Create desktop object from a VirtualDesktop at index 0..Count-1
 /// </summary>
 /// <param name="index"></param>
 /// <returns></returns>
 public static VirtualDesktop FromIndex(int index)
 {
     return(new VirtualDesktop(DesktopManager.GetDesktop(index)));
 }