More separation of concerns. Improved the window pickup and redraw performance significantly.
This commit is contained in:
parent
bce40f67e8
commit
1284147a23
2 changed files with 30 additions and 24 deletions
|
@ -125,12 +125,6 @@ Manager_applyRules(wndId, ByRef isManaged, ByRef m, ByRef tags, ByRef isFloating
|
||||||
hideTitle := rule9
|
hideTitle := rule9
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
If (m = 0)
|
|
||||||
m := Manager_aMonitor
|
|
||||||
If (m > Manager_monitorCount) ; If the specified monitor is out of scope, set it to the max. monitor.
|
|
||||||
m := Manager_monitorCount
|
|
||||||
If (tags = 0)
|
|
||||||
tags := 1 << Monitor_#%m%_aView_#1 - 1
|
|
||||||
} Else {
|
} Else {
|
||||||
isManaged := False
|
isManaged := False
|
||||||
If wndTitle
|
If wndTitle
|
||||||
|
@ -311,6 +305,15 @@ Manager_manage(wndId) {
|
||||||
Manager_allWndIds .= wndId ";"
|
Manager_allWndIds .= wndId ";"
|
||||||
Manager_applyRules(wndId, isManaged, m, tags, isFloating, isDecorated, hideTitle)
|
Manager_applyRules(wndId, isManaged, m, tags, isFloating, isDecorated, hideTitle)
|
||||||
|
|
||||||
|
If (m = 0)
|
||||||
|
m := Manager_aMonitor
|
||||||
|
If (m < 0)
|
||||||
|
m := 1
|
||||||
|
If (m > Manager_monitorCount) ; If the specified monitor is out of scope, set it to the max. monitor.
|
||||||
|
m := Manager_monitorCount
|
||||||
|
If (tags = 0)
|
||||||
|
tags := 1 << Monitor_#%m%_aView_#1 - 1
|
||||||
|
|
||||||
WinGet, wndProcessName, ProcessName, ahk_id %wndId%
|
WinGet, wndProcessName, ProcessName, ahk_id %wndId%
|
||||||
If (wndProcessName = "chrome.exe") {
|
If (wndProcessName = "chrome.exe") {
|
||||||
WinGet, wndControlList, ControlList, ahk_id %wndId%
|
WinGet, wndControlList, ControlList, ahk_id %wndId%
|
||||||
|
@ -393,7 +396,7 @@ HSHELL_REDRAW := 6
|
||||||
HSHELL_RUDEAPPACTIVATED := 32772
|
HSHELL_RUDEAPPACTIVATED := 32772
|
||||||
|
|
||||||
Manager_onShellMessage(wParam, lParam) {
|
Manager_onShellMessage(wParam, lParam) {
|
||||||
Local a, aWndClass, aWndHeight, aWndId, aWndTitle, aWndWidth, aWndX, aWndY, flag, m, t, wndClass, wndId, wndIds, wndPName, wndTitle, x, y
|
Local a, isChanged, aWndClass, aWndHeight, aWndId, aWndTitle, aWndWidth, aWndX, aWndY, m, t, wndClass, wndId, wndIds, wndPName, wndTitle, x, y
|
||||||
|
|
||||||
Log_dbg_msg(1, "Manager_onShellMessage(wParam: " . wParam . ", lParam: " . lParam)
|
Log_dbg_msg(1, "Manager_onShellMessage(wParam: " . wParam . ", lParam: " . lParam)
|
||||||
|
|
||||||
|
@ -426,20 +429,17 @@ Manager_onShellMessage(wParam, lParam) {
|
||||||
Sleep, %Config_shellMsgDelay%
|
Sleep, %Config_shellMsgDelay%
|
||||||
}
|
}
|
||||||
|
|
||||||
If (wParam = 1 Or wParam = 6) And Not InStr(Manager_allWndIds, lParam ";") And Not InStr(Manager_managedWndIds, lParam ";")
|
isChanged := Manager_sync(wndIds)
|
||||||
a := Manager_manage(lParam)
|
|
||||||
Else {
|
|
||||||
flag := True
|
|
||||||
a := Manager_sync(wndIds)
|
|
||||||
If wndIds
|
If wndIds
|
||||||
a := False
|
isChanged := False
|
||||||
}
|
|
||||||
If a {
|
If a Or isChanged {
|
||||||
|
SetWinDelay, 0
|
||||||
View_arrange(Manager_aMonitor, Monitor_#%Manager_aMonitor%_aView_#1)
|
View_arrange(Manager_aMonitor, Monitor_#%Manager_aMonitor%_aView_#1)
|
||||||
|
SetWinDelay, 10
|
||||||
Bar_updateView(Manager_aMonitor, Monitor_#%Manager_aMonitor%_aView_#1)
|
Bar_updateView(Manager_aMonitor, Monitor_#%Manager_aMonitor%_aView_#1)
|
||||||
}
|
}
|
||||||
|
|
||||||
If flag
|
|
||||||
If (Manager_monitorCount > 1) {
|
If (Manager_monitorCount > 1) {
|
||||||
WinGetPos, aWndX, aWndY, aWndWidth, aWndHeight, ahk_id %aWndId%
|
WinGetPos, aWndX, aWndY, aWndWidth, aWndHeight, ahk_id %aWndId%
|
||||||
m := Monitor_get(aWndX + aWndWidth / 2, aWndY + aWndHeight / 2)
|
m := Monitor_get(aWndX + aWndWidth / 2, aWndY + aWndHeight / 2)
|
||||||
|
@ -613,7 +613,7 @@ Manager_unmanage(wndId) {
|
||||||
a := Manager_#%wndId%_tags & 1 << Monitor_#%Manager_aMonitor%_aView_#1 - 1
|
a := Manager_#%wndId%_tags & 1 << Monitor_#%Manager_aMonitor%_aView_#1 - 1
|
||||||
Loop, % Config_viewCount
|
Loop, % Config_viewCount
|
||||||
If (Manager_#%wndId%_tags & 1 << A_Index - 1) {
|
If (Manager_#%wndId%_tags & 1 << A_Index - 1) {
|
||||||
StringReplace, View_#%Manager_aMonitor%_#%A_Index%_wndIds, View_#%Manager_aMonitor%_#%A_Index%_wndIds, %wndId%`;,
|
View_delWnd( Manager_aMonitor, A_Index, wndId )
|
||||||
Bar_updateView(Manager_aMonitor, A_Index)
|
Bar_updateView(Manager_aMonitor, A_Index)
|
||||||
}
|
}
|
||||||
Manager_#%wndId%_tags :=
|
Manager_#%wndId%_tags :=
|
||||||
|
|
|
@ -69,6 +69,7 @@ View_updateLayout(m, v) {
|
||||||
View_updateLayout_%fn%(m, v)
|
View_updateLayout_%fn%(m, v)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; Add a window to the view in question.
|
||||||
View_addWnd(m, v, wndId) {
|
View_addWnd(m, v, wndId) {
|
||||||
Local l, msplit, i, wndIds, n
|
Local l, msplit, i, wndIds, n
|
||||||
|
|
||||||
|
@ -99,6 +100,11 @@ View_addWnd(m, v, wndId) {
|
||||||
View_#%m%_#%v%_wndIds := wndId ";" View_#%m%_#%v%_wndIds
|
View_#%m%_#%v%_wndIds := wndId ";" View_#%m%_#%v%_wndIds
|
||||||
}
|
}
|
||||||
|
|
||||||
|
; Remove a window from the view in question.
|
||||||
|
View_delWnd(m, v, wndId) {
|
||||||
|
StringReplace, View_#%m%_#%v%_wndIds, View_#%m%_#%v%_wndIds, %wndId%`;,
|
||||||
|
}
|
||||||
|
|
||||||
View_arrange(m, v) {
|
View_arrange(m, v) {
|
||||||
Local fn, l, wndIds
|
Local fn, l, wndIds
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue