diff options
-rw-r--r-- | winii.ahk | 34 |
1 files changed, 23 insertions, 11 deletions
@@ -86,11 +86,14 @@ SendToDesktop(windowID, newDesktop, remove) windows%newDesktop%%i% := windowID + if ! (windowTagsCount%windowID% > 0) + windowTagsCount%windowID% := 1 + + windowTagsCount%windowID% += 1 if (remove) { RemoveWindowID(curDesktop, windowID) - Send, {ALT DOWN}{TAB}{ALT UP} ; activate the right window } } @@ -135,7 +138,6 @@ RemoveCurrentWindow() WinGet, id, ID, A RemoveWindowID(curDesktop, id) - Send, {ALT DOWN}{TAB}{ALT UP} } ; removes the given window id from the desktop <desktopIdx> @@ -143,19 +145,29 @@ RemoveWindowID(desktopIdx, ID) { global - removed := 0 - Loop, % windows%desktopIdx% + if ! (windowTagsCount%ID% > 0) + windowTagsCount%ID% := 1 + + if ( windowTagsCount%ID% > 1) { - if (windows%desktopIdx%%A_Index% = ID) + windowTagsCount%ID% -= 1 + + removed := 0 + Loop, % windows%desktopIdx% { - RemoveWindowID_byIndex(desktopIdx, A_Index) - WinHide ahk_id %ID% - removed := 1 - Break + if (windows%desktopIdx%%A_Index% = ID) + { + RemoveWindowID_byIndex(desktopIdx, A_Index) + WinHide ahk_id %ID% + removed := 1 + Break + } } + if (removed = 0) + WinHide ahk_id %ID% + + Send, {ALT DOWN}{TAB}{ALT UP} ; activate the right window } - if (removed = 0) - WinHide ahk_id %ID% } ; this removes the window id at index <ID_idx> from desktop number <desktopIdx> |