Fixed bug in multi-monitor bug.n command GUI ...
... positioning + fixed minor redrawing problem of the bug.n bar + fixed bug in bug.n Bar_GuiClick and Bar_GUIContextMenu monitor calculation
This commit is contained in:
parent
be8e4a68c3
commit
8ca47284e1
3 changed files with 37 additions and 15 deletions
29
src/Bar.ahk
29
src/Bar.ahk
|
@ -284,12 +284,12 @@ Bar_GuiClick:
|
|||
If (A_GuiEvent = "Normal") {
|
||||
If (SubStr(A_GuiControl, -13) = "_shebang_event") {
|
||||
If Not Bar_cmdGuiIsVisible
|
||||
If Not (SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_#", False, 0) - 6) = Manager_aMonitor)
|
||||
Manager_activateMonitor(SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_#", False, 0) - 6))
|
||||
If Not (SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_", False, 6) - 6) = Manager_aMonitor)
|
||||
Manager_activateMonitor(SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_", False, 6) - 6))
|
||||
Bar_toggleCommandGui()
|
||||
} Else {
|
||||
If Not (SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_#", False, 0) - 6) = Manager_aMonitor)
|
||||
Manager_activateMonitor(SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_#", False, 0) - 6))
|
||||
If Not (SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_", False, 6) - 6) = Manager_aMonitor)
|
||||
Manager_activateMonitor(SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_", False, 6) - 6))
|
||||
If (SubStr(A_GuiControl, -12) = "_layout_event")
|
||||
View_setLayout(-1)
|
||||
Else If InStr(A_GuiControl, "_view_#") And (SubStr(A_GuiControl, -5) = "_event")
|
||||
|
@ -302,12 +302,12 @@ Bar_GuiContextMenu:
|
|||
Manager_winActivate(Bar_aWndId)
|
||||
If (A_GuiEvent = "RightClick") {
|
||||
If (SubStr(A_GuiControl, -12) = "_layout_event") {
|
||||
If Not (SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_#", False, 0) - 6) = Manager_aMonitor)
|
||||
Manager_activateMonitor(SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_#", False, 0) - 6))
|
||||
If Not (SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_", False, 6) - 6) = Manager_aMonitor)
|
||||
Manager_activateMonitor(SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_", False, 6) - 6))
|
||||
View_setLayout(0, +1)
|
||||
} Else If InStr(A_GuiControl, "_view_#") And (SubStr(A_GuiControl, -5) = "_event") {
|
||||
If Not (SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_#", False, 0) - 6) = Manager_aMonitor)
|
||||
Manager_setWindowMonitor(SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_#", False, 0) - 6))
|
||||
If Not (SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_", False, 6) - 6) = Manager_aMonitor)
|
||||
Manager_setWindowMonitor(SubStr(A_GuiControl, 6, InStr(A_GuiControl, "_", False, 6) - 6))
|
||||
Monitor_setWindowTag(SubStr(A_GuiControl, InStr(A_GuiControl, "_view_#", False, 0) + 7, 1))
|
||||
}
|
||||
}
|
||||
|
@ -342,8 +342,8 @@ Bar_toggleCommandGui()
|
|||
Else
|
||||
{
|
||||
Bar_cmdGuiIsVisible := True
|
||||
x := Monitor_#%Manager_aMonitor%_barX + Monitor_#%Manager_aMonitor%_barWidth - Bar_#0_#0W
|
||||
If (Config_verticalBarPos = "top") Or (Config_verticalBarPos = "tray") And (Manager_taskBarPos = "top" Or Not Monitor_#%Manager_aMonitor%_taskBarClass)
|
||||
x := Monitor_#%Manager_aMonitor%_x + Monitor_#%Manager_aMonitor%_barX + Monitor_#%Manager_aMonitor%_barWidth - Bar_#0_#0W
|
||||
If (Config_verticalBarPos = "top") Or (Config_verticalBarPos = "tray") And (Monitor_%Manager_aMonitor%_taskBarPos = "top" Or Not Monitor_#%Manager_aMonitor%_taskBarClass)
|
||||
y := Monitor_#%Manager_aMonitor%_y
|
||||
Else
|
||||
y := Monitor_#%Manager_aMonitor%_y + Monitor_#%Manager_aMonitor%_height - Bar_#0_#0H
|
||||
|
@ -375,6 +375,13 @@ Bar_updateLayout(m) {
|
|||
GuiControl, %GuiN%: , Bar_#%m%_layout, % View_#%m%_#%aView%_layoutSymbol
|
||||
}
|
||||
|
||||
Bar_updateStatic(m) {
|
||||
Local GuiN
|
||||
|
||||
GuiN := (m - 1) + 1
|
||||
GuiControl, %GuiN%: , Bar_#%m%_shebang, #!
|
||||
}
|
||||
|
||||
Bar_updateStatus() {
|
||||
Local anyContent, anyText, bat1, bat2, bat3, GuiN, m, mute, vol
|
||||
|
||||
|
@ -484,7 +491,7 @@ Bar_updateView(m, v) {
|
|||
GuiControl, +c%Config_fontColor_#1_#1%, Bar_#%m%_view_#%v%
|
||||
}
|
||||
|
||||
Loop, %Config_viewCount% {
|
||||
Loop, % Config_viewCount {
|
||||
StringTrimRight, wndIds, View_#%m%_#%A_Index%_wndIds, 1
|
||||
StringSplit, wndId, wndIds, `;
|
||||
GuiControl, , Bar_#%m%_view_#%A_Index%_highlighted, % wndId0 / managedWndId0 * 100 ;; Update the percentage fill for the view.
|
||||
|
|
|
@ -476,7 +476,7 @@ WINDOW_NOTICE := 32774
|
|||
Windows events can't always be caught.
|
||||
*/
|
||||
Manager_onShellMessage(wParam, lParam) {
|
||||
Local a, isChanged, aWndClass, aWndHeight, aWndId, aWndTitle, aWndWidth, aWndX, aWndY, 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, wndPName, wndTitle, x, y
|
||||
|
||||
SetFormat, Integer, hex
|
||||
lParam := lParam+0
|
||||
|
@ -592,7 +592,21 @@ Manager_onShellMessage(wParam, lParam) {
|
|||
}
|
||||
}
|
||||
|
||||
Bar_updateTitle()
|
||||
;; This is a workaround for a redrawing problem of the bug.n bar, which
|
||||
;; seems to get lost, when windows are created or destroyed under the
|
||||
;; following conditions.
|
||||
If (Manager_monitorCount > 1) And (Config_verticalBarPos = "tray") {
|
||||
Loop, % (Manager_monitorCount - 1) {
|
||||
i := A_Index + 1
|
||||
Bar_updateLayout(i)
|
||||
Bar_updateStatic(i)
|
||||
Loop, % Config_viewCount
|
||||
Bar_updateView(i, A_Index)
|
||||
}
|
||||
Bar_updateStatus()
|
||||
Bar_updateTitle()
|
||||
} Else
|
||||
Bar_updateTitle()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ Monitor_init(m, doRestore) {
|
|||
Monitor_#%m%_showBar := Config_showBar
|
||||
Monitor_#%m%_showTaskBar := Config_showTaskBar
|
||||
Monitor_#%m%_taskBarClass := ""
|
||||
Monitor_%m%_taskBarPos := ""
|
||||
Loop, % Config_viewCount
|
||||
View_init(m, A_Index)
|
||||
If doRestore
|
||||
|
@ -148,8 +149,8 @@ Monitor_getWorkArea(m) {
|
|||
;; Top
|
||||
wndHeight += wndY - monitorTop
|
||||
monitorTop += wndHeight
|
||||
If (A_LoopField = "Shell_TrayWnd")
|
||||
Manager_taskBarPos := "top"
|
||||
If (A_LoopField = "Shell_TrayWnd") Or (A_LoopField = "Shell_SecondaryTrayWnd")
|
||||
Monitor_%m%_taskBarPos := "top"
|
||||
} Else {
|
||||
;; Bottom
|
||||
wndHeight := monitorBottom - wndY
|
||||
|
|
Loading…
Reference in a new issue