Unified the usage of WinGet, ... ProcessName ...

... and added window PID information.
This commit is contained in:
joten 2015-02-14 13:52:49 +01:00
parent 9f42612f84
commit b1b36b77e9
2 changed files with 18 additions and 17 deletions

View file

@ -96,7 +96,7 @@ Debug_logWindowInfo(wndId)
{ {
Local aWndId, detectSetting, text, v Local aWndId, detectSetting, text, v
Local isBugnActive, isDecorated, isFloating, isGhost, isHidden, isResponsive, isWinFocus Local isBugnActive, isDecorated, isFloating, isGhost, isHidden, isResponsive, isWinFocus
Local wndClass, wndH, wndProc, wndStyle, wndTitle, wndW, wndX, wndY Local wndClass, wndH, wndPId, wndPName, wndStyle, wndTitle, wndW, wndX, wndY
detectSetting := A_DetectHiddenWindows detectSetting := A_DetectHiddenWindows
DetectHiddenWindows, On DetectHiddenWindows, On
@ -112,7 +112,8 @@ Debug_logWindowInfo(wndId)
isBugnActive := " " isBugnActive := " "
WinGetTitle, wndTitle, ahk_id %wndId% WinGetTitle, wndTitle, ahk_id %wndId%
WinGetClass, wndClass, ahk_id %wndId% WinGetClass, wndClass, ahk_id %wndId%
WinGet, wndProc, ProcessName, ahk_id %wndId% WinGet, wndPName, ProcessName, ahk_id %wndId%
WinGet, wndPId, PID, ahk_id %wndId%
If InStr(Bar_hiddenWndIds, wndId) If InStr(Bar_hiddenWndIds, wndId)
isHidden := "*" isHidden := "*"
Else Else
@ -142,7 +143,7 @@ Debug_logWindowInfo(wndId)
text := wndId "`t" text := wndId "`t"
text .= isHidden " " isWinFocus " " isBugnActive " " isFloating " " isDecorated " " isResponsive " " isGhost " " text .= isHidden " " isWinFocus " " isBugnActive " " isFloating " " isDecorated " " isResponsive " " isGhost " "
text .= Window_#%wndId%_monitor "`t" Window_#%wndId%_tags "`t" text .= Window_#%wndId%_monitor "`t" Window_#%wndId%_tags "`t"
text .= wndX "`t" wndY "`t" wndW "`t" wndH "`t" wndStyle "`t" wndProc " / " wndClass " / " wndTitle text .= wndX "`t" wndY "`t" wndW "`t" wndH "`t" wndStyle "`t" wndPName " [" wndPId "] / " wndClass " / " wndTitle
Debug_logMessage(text , 0, False) Debug_logMessage(text , 0, False)
} }

View file

@ -211,12 +211,13 @@ Return
Manager_getWindowInfo() Manager_getWindowInfo()
{ {
Local aWndClass, aWndHeight, aWndId, aWndMinMax, aWndProcessName, aWndStyle, aWndTitle, aWndWidth, aWndX, aWndY, rule, text, v Local aWndClass, aWndHeight, aWndId, aWndMinMax, aWndPId, aWndPName, aWndStyle, aWndTitle, aWndWidth, aWndX, aWndY, rule, text, v
WinGet, aWndId, ID, A WinGet, aWndId, ID, A
WinGetClass, aWndClass, ahk_id %aWndId% WinGetClass, aWndClass, ahk_id %aWndId%
WinGetTitle, aWndTitle, ahk_id %aWndId% WinGetTitle, aWndTitle, ahk_id %aWndId%
WinGet, aWndProcessName, ProcessName, ahk_id %aWndId% WinGet, aWndPName, ProcessName, ahk_id %aWndId%
WinGet, aWndPId, PID, ahk_id %aWndId%
WinGet, aWndStyle, Style, ahk_id %aWndId% WinGet, aWndStyle, Style, ahk_id %aWndId%
WinGet, aWndMinMax, MinMax, ahk_id %aWndId% WinGet, aWndMinMax, MinMax, ahk_id %aWndId%
WinGetPos, aWndX, aWndY, aWndWidth, aWndHeight, ahk_id %aWndId% WinGetPos, aWndX, aWndY, aWndWidth, aWndHeight, ahk_id %aWndId%
@ -234,7 +235,7 @@ Manager_getWindowInfo()
rule .= ";0;" rule .= ";0;"
If (aWndMinMax = 1) If (aWndMinMax = 1)
rule .= "maximize" rule .= "maximize"
text .= "`nprocess:`t" aWndProcessName "`nstyle:`t" aWndStyle "`nmetrics:`tx: " aWndX ", y: " aWndY ", width: " aWndWidth ", height: " aWndHeight "`ntags:`t" Window_#%aWndId%_tags text .= "`nprocess:`t" aWndPName " [" aWndPId "]`nstyle:`t" aWndStyle "`nmetrics:`tx: " aWndX ", y: " aWndY ", width: " aWndWidth ", height: " aWndHeight "`ntags:`t" Window_#%aWndId%_tags
If Window_#%aWndId%_isFloating If Window_#%aWndId%_isFloating
text .= " (floating)" text .= " (floating)"
text .= "`n`n" rule text .= "`n`n" rule
@ -339,7 +340,7 @@ Manager__setWinProperties(wndId, isManaged, m, tags, isDecorated, isFloating, hi
Manager_manage(preferredMonitor, preferredView, wndId) Manager_manage(preferredMonitor, preferredView, wndId)
{ {
Local a, action, c0, hideTitle, i, isDecorated, isFloating, isManaged, l, m, n, replace, search, tags, body Local a, action, c0, hideTitle, i, isDecorated, isFloating, isManaged, l, m, n, replace, search, tags, body
Local wndControlList0, wndId0, wndIds, wndX, wndY, wndWidth, wndHeight, wndProcessName Local wndControlList0, wndId0, wndIds, wndX, wndY, wndWidth, wndHeight
;; Manage any window only once. ;; Manage any window only once.
If InStr(Manager_allWndIds, wndId ";") If InStr(Manager_allWndIds, wndId ";")
@ -477,7 +478,7 @@ WINDOW_NOTICE := 32774
Windows events can't always be caught. Windows events can't always be caught.
*/ */
Manager_onShellMessage(wParam, lParam) { Manager_onShellMessage(wParam, lParam) {
Local a, isChanged, aWndClass, aWndHeight, aWndId, aWndTitle, aWndWidth, aWndX, aWndY, i, m, t, wndClass, wndId, wndId0, wndIds, wndPName, wndTitle, x, y Local a, isChanged, aWndClass, aWndHeight, aWndId, aWndTitle, aWndWidth, aWndX, aWndY, i, m, t, wndClass, wndId, wndId0, wndIds, wndTitle, x, y
SetFormat, Integer, hex SetFormat, Integer, hex
lParam := lParam+0 lParam := lParam+0
@ -487,7 +488,6 @@ Manager_onShellMessage(wParam, lParam) {
WinGetClass, wndClass, ahk_id %lParam% WinGetClass, wndClass, ahk_id %lParam%
WinGetTitle, wndTitle, ahk_id %lParam% WinGetTitle, wndTitle, ahk_id %lParam%
WinGet, wndPName, ProcessName, ahk_id %lParam%
If Not wndClass And Not wndTitle { If Not wndClass And Not wndTitle {
;; If there is no window class or title, it is assumed that the window is not identifiable. ;; If there is no window class or title, it is assumed that the window is not identifiable.
;; The problem was, that i. a. claws-mail triggers Manager_sync, but the application window ;; The problem was, that i. a. claws-mail triggers Manager_sync, but the application window
@ -704,7 +704,7 @@ Manager_restoreWindowBorders()
;; If the state is completely different, this function won't do much. However, if restoring from a crash ;; If the state is completely different, this function won't do much. However, if restoring from a crash
;; or simply restarting bug.n, it should completely recover the window state. ;; or simply restarting bug.n, it should completely recover the window state.
Manager__restoreWindowState(filename) { Manager__restoreWindowState(filename) {
Local vidx, widx, i, j, m, v, candidate_set, view_set, excluded_view_set, view_m0, view_v0, view_list0, wnds0, items0, wndProc, view_var, isManaged, isFloating, isDecorated, hideTitle Local vidx, widx, i, j, m, v, candidate_set, view_set, excluded_view_set, view_m0, view_v0, view_list0, wnds0, items0, wndPName, view_var, isManaged, isFloating, isDecorated, hideTitle
If Not FileExist(filename) If Not FileExist(filename)
Return Return
@ -763,10 +763,10 @@ Manager__restoreWindowState(filename) {
j := 2 j := 2
DetectHiddenWindows, On DetectHiddenWindows, On
WinGet, wndProc, ProcessName, ahk_id %i% WinGet, wndPName, ProcessName, ahk_id %i%
DetectHiddenWindows, Off DetectHiddenWindows, Off
If Not ( items%j% = wndProc ) { If Not ( items%j% = wndPName ) {
Debug_logMessage("Window ahk_id " . i . " process '" . wndProc . "' doesn't match expected '" . items%j% . "', forgetting this window", 0) Debug_logMessage("Window ahk_id " . i . " process '" . wndPName . "' doesn't match expected '" . items%j% . "', forgetting this window", 0)
Continue Continue
} }
@ -840,7 +840,7 @@ Manager_saveState() {
} }
Manager_saveWindowState(filename, nm, nv) { Manager_saveWindowState(filename, nm, nv) {
Local allWndId0, allWndIds, process, title, text, monitor, wndId, view, isManaged, isTitleHidden Local allWndId0, allWndIds, wndPName, title, text, monitor, wndId, view, isManaged, isTitleHidden
text := "; bug.n - tiling window management`n; @version " VERSION "`n`n" text := "; bug.n - tiling window management`n; @version " VERSION "`n`n"
@ -854,16 +854,16 @@ Manager_saveWindowState(filename, nm, nv) {
DetectHiddenWindows, On DetectHiddenWindows, On
Loop, % allWndId0 { Loop, % allWndId0 {
wndId := allWndId%A_Index% wndId := allWndId%A_Index%
WinGet, process, ProcessName, ahk_id %wndId% WinGet, wndPName, ProcessName, ahk_id %wndId%
; Include title for informative reasons. ; Include title for informative reasons.
WinGetTitle, title, ahk_id %wndId% WinGetTitle, title, ahk_id %wndId%
; wndId;process;Tags;Floating;Decorated;HideTitle;Managed;Title ; wndId;processName;Tags;Floating;Decorated;HideTitle;Managed;Title
isManaged := InStr(Manager_managedWndIds, wndId . ";") isManaged := InStr(Manager_managedWndIds, wndId . ";")
isTitleHidden := InStr(Bar_hideTitleWndIds, wndId . ";") isTitleHidden := InStr(Bar_hideTitleWndIds, wndId . ";")
text .= "Window " . wndId . ";" . process . ";" . Window_#%wndId%_monitor . ";" . Window_#%wndId%_tags . ";" . Window_#%wndId%_isFloating . ";" . Window_#%wndId%_isDecorated . ";" . isTitleHidden . ";" . isManaged . ";" . title . "`n" text .= "Window " . wndId . ";" . wndPName . ";" . Window_#%wndId%_monitor . ";" . Window_#%wndId%_tags . ";" . Window_#%wndId%_isFloating . ";" . Window_#%wndId%_isDecorated . ";" . isTitleHidden . ";" . isManaged . ";" . title . "`n"
} }
DetectHiddenWindows, Off DetectHiddenWindows, Off