diff --git a/src/Manager.ahk b/src/Manager.ahk index bdcc1f4..70c6cfe 100644 --- a/src/Manager.ahk +++ b/src/Manager.ahk @@ -329,26 +329,7 @@ Manager_manage(wndId) { Loop, % Config_viewCount If (Manager_#%wndId%_tags & 1 << A_Index - 1) { - l := View_#%m%_#%A_Index%_layout_#1 - If (Config_layoutFunction_#%l% = "tile") And ((Config_newWndPosition = "masterBottom") Or (Config_newWndPosition = "stackTop")) { - n := View_getTiledWndIds(m, A_Index, wndIds) - If (n > 1) { - StringSplit, wndId, wndIds, `; - If (wndId0 < View_#%m%_#%A_Index%_layoutMSplit) - View_#%m%_#%A_Index%_layoutMSplit := wndId0 - i := View_#%m%_#%A_Index%_layoutMSplit - search := wndId%i% ";" - replace := search wndId ";" - StringReplace, View_#%m%_#%A_Index%_wndIds, View_#%m%_#%A_Index%_wndIds, %search%, %replace% - } Else - View_#%m%_#%A_Index%_wndIds .= wndId ";" - If (Config_newWndPosition = "masterBottom") And (n > 0) - View_#%m%_#%A_Index%_layoutMSplit += 1 - } Else If (Config_newWndPosition = "bottom") - View_#%m%_#%A_Index%_wndIds .= wndId ";" - Else - View_#%m%_#%A_Index%_wndIds := wndId ";" View_#%m%_#%A_Index%_wndIds - Bar_updateView(m, A_Index) + View_addWnd(m, A_Index, wndId) } If Not Config_showBorder diff --git a/src/View.ahk b/src/View.ahk index 4e4f23d..89b89f7 100644 --- a/src/View.ahk +++ b/src/View.ahk @@ -69,6 +69,36 @@ View_updateLayout(m, v) { View_updateLayout_%fn%(m, v) } +View_addWnd(m, v, wndId) { + Local l, msplit, i, wndIds, n + + l := View_#%m%_#%v%_layout_#1 + If (Config_layoutFunction_#%l% = "tile") And ((Config_newWndPosition = "masterBottom") Or (Config_newWndPosition = "stackTop")) { + n := View_getTiledWndIds(m, v, wndIds) + msplit := View_#%m%_#%v%_layoutMSplit + If ( msplit = 1 And Config_newWndPosition="masterBottom" ) { + View_#%m%_#%v%_wndIds := wndId ";" . View_#%m%_#%v%_wndIds + } + Else If ( (Config_newWndPosition="masterBottom" And n < msplit) Or (Config_newWndPosition="stackTop" And n <= msplit) ) { + View_#%m%_#%v%_wndIds .= wndId ";" + } + Else { + If (Config_newWndPosition="masterBottom") + i := msplit - 1 + Else + i := msplit + StringSplit, wndId, wndIds, `; + search := wndId%i% ";" + replace := search wndId ";" + StringReplace, View_#%m%_#%v%_wndIds, View_#%m%_#%v%_wndIds, %search%, %replace% + } + } + Else If (Config_newWndPosition = "bottom") + View_#%m%_#%v%_wndIds .= wndId ";" + Else + View_#%m%_#%v%_wndIds := wndId ";" View_#%m%_#%v%_wndIds +} + View_arrange(m, v) { Local fn, l, wndIds