Revised "Monitor_toggleWindowTag" and ...
"View_activateWindow" in regards to absolute and relative value setting
This commit is contained in:
parent
b014a72284
commit
8455ec1b60
6 changed files with 52 additions and 62 deletions
|
@ -14,6 +14,8 @@
|
||||||
`View_setMY` and `View_rotateLayoutAxis`
|
`View_setMY` and `View_rotateLayoutAxis`
|
||||||
4. `~` Revised the following functions to allow setting absolute and relative values: `Debug_setLogLevel`, `Monitor_activateView`,
|
4. `~` Revised the following functions to allow setting absolute and relative values: `Debug_setLogLevel`, `Monitor_activateView`,
|
||||||
`Monitor_setWindowTag`, `View_setLayout`, `View_setMFactor`, `View_shuffleWindow`
|
`Monitor_setWindowTag`, `View_setLayout`, `View_setMFactor`, `View_shuffleWindow`
|
||||||
|
5. `~` Revised the interface, i. e. the parameters, of the following functions for setting absolute and relative values -- but did
|
||||||
|
not implement the functionality: `Monitor_toggleWindowTag`, `View_activateWindow`
|
||||||
|
|
||||||
| # | Configuration variables | `-` Hotkey functions | `+` Hotkey functions |
|
| # | Configuration variables | `-` Hotkey functions | `+` Hotkey functions |
|
||||||
| --:| ----------------------- | --------------------------------------- | ----------------------------------------------------- |
|
| --:| ----------------------- | --------------------------------------- | ----------------------------------------------------- |
|
||||||
|
@ -37,6 +39,8 @@
|
||||||
| | | `#+Up::View_shuffleWindow(-1)` | `#+Up::View_shuffleWindow(0, -1)` |
|
| | | `#+Up::View_shuffleWindow(-1)` | `#+Up::View_shuffleWindow(0, -1)` |
|
||||||
| | | `#+Enter::View_shuffleWindow(0)` | `#+Enter::View_shuffleWindow(1)` |
|
| | | `#+Enter::View_shuffleWindow(0)` | `#+Enter::View_shuffleWindow(1)` |
|
||||||
| | | `#+0::Monitor_setWindowTag(0)` | `#+0::Monitor_setWindowTag(10)` |
|
| | | `#+0::Monitor_setWindowTag(0)` | `#+0::Monitor_setWindowTag(10)` |
|
||||||
|
| 5. | | `#Down::View_activateWindow(+1)` | `#Down::View_activateWindow(0, +1)` |
|
||||||
|
| | | `#Up::View_activateWindow(-1)` | `#Up::View_activateWindow(0, -1)` |
|
||||||
|
|
||||||
### 8.4.0
|
### 8.4.0
|
||||||
|
|
||||||
|
|
|
@ -18,10 +18,10 @@ quitting bug.n.
|
||||||
|
|
||||||
### Window management
|
### Window management
|
||||||
|
|
||||||
`#Down::View_activateWindow(+1)`
|
`#Down::View_activateWindow(0, +1)`
|
||||||
> Activate the next window in the active view.
|
> Activate the next window in the active view.
|
||||||
|
|
||||||
`#Up::View_activateWindow(-1)`
|
`#Up::View_activateWindow(0, -1)`
|
||||||
> Activate the previous window in the active view.
|
> Activate the previous window in the active view.
|
||||||
|
|
||||||
`#+Down::View_shuffleWindow(0, +1)`
|
`#+Down::View_shuffleWindow(0, +1)`
|
||||||
|
|
|
@ -383,8 +383,8 @@ Config_UI_saveSession() {
|
||||||
|
|
||||||
;; Key definitions
|
;; Key definitions
|
||||||
;; Window management
|
;; Window management
|
||||||
#Down::View_activateWindow(+1)
|
#Down::View_activateWindow(0, +1)
|
||||||
#Up::View_activateWindow(-1)
|
#Up::View_activateWindow(0, -1)
|
||||||
#+Down::View_shuffleWindow(0, +1)
|
#+Down::View_shuffleWindow(0, +1)
|
||||||
#+Up::View_shuffleWindow(0, -1)
|
#+Up::View_shuffleWindow(0, -1)
|
||||||
#+Enter::View_shuffleWindow(1)
|
#+Enter::View_shuffleWindow(1)
|
||||||
|
|
|
@ -185,19 +185,19 @@ Manager_cleanup()
|
||||||
}
|
}
|
||||||
|
|
||||||
Manager_closeWindow() {
|
Manager_closeWindow() {
|
||||||
Local aView, aWndId, c
|
Local aView, aWndId, wndId0, wndIds
|
||||||
|
|
||||||
WinGet, aWndId, ID, A
|
WinGet, aWndId, ID, A
|
||||||
If Window_isProg(aWndId) {
|
If Window_isProg(aWndId) {
|
||||||
;; Prior to closing, find the next window that should have focus.
|
;; Prior to closing, find the next window that should have focus.
|
||||||
;; If there is no such window, choose the bar on the same monitor.
|
;; If there is no such window, choose the bar on the same monitor.
|
||||||
aView := Monitor_#%Manager_aMonitor%_aView_#1
|
aView := Monitor_#%Manager_aMonitor%_aView_#1
|
||||||
StringSplit, c, View_#%Manager_aMonitor%_#%aView%_wndIds, `;
|
StringTrimRight, wndIds, View_#%Manager_aMonitor%_#%aView%_wndIds, 1
|
||||||
If (c0 < 3) {
|
StringSplit, wndId, wndIds, `;
|
||||||
|
If (wndId0 >= 2)
|
||||||
|
View_activateWindow(0, +1)
|
||||||
|
Else
|
||||||
Manager_winActivate(0)
|
Manager_winActivate(0)
|
||||||
} Else {
|
|
||||||
View_activateWindow(1)
|
|
||||||
}
|
|
||||||
Window_close(aWndId)
|
Window_close(aWndId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -480,7 +480,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, m, t, wndClass, wndId, wndIds, wndPName, wndTitle, x, y
|
Local a, isChanged, aWndClass, aWndHeight, aWndId, aWndTitle, aWndWidth, aWndX, aWndY, m, t, wndClass, wndId, wndId0, wndIds, wndPName, wndTitle, x, y
|
||||||
|
|
||||||
SetFormat, Integer, hex
|
SetFormat, Integer, hex
|
||||||
lParam := lParam+0
|
lParam := lParam+0
|
||||||
|
@ -828,7 +828,7 @@ Manager_saveState() {
|
||||||
}
|
}
|
||||||
|
|
||||||
Manager_saveWindowState(filename, nm, nv) {
|
Manager_saveWindowState(filename, nm, nv) {
|
||||||
Local allWndId, allWndIds, process, title, text, monitor, wndId, view, isManaged, isTitleHidden
|
Local allWndId0, allWndIds, process, 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"
|
||||||
|
|
||||||
|
@ -1010,7 +1010,7 @@ Manager_sizeWindow() {
|
||||||
;; No windows are known to the system yet.
|
;; No windows are known to the system yet.
|
||||||
;; Try to do something smart with the initial layout.
|
;; Try to do something smart with the initial layout.
|
||||||
Manager_initial_sync(doRestore) {
|
Manager_initial_sync(doRestore) {
|
||||||
Local wndId0, wnd, wndX, wndY, wndW, wndH, x, y, m, len
|
Local wndId, wndId0, wnd, wndX, wndY, wndW, wndH, x, y, m, len
|
||||||
|
|
||||||
;; Initialize lists
|
;; Initialize lists
|
||||||
;; Note that these variables make this function non-reentrant.
|
;; Note that these variables make this function non-reentrant.
|
||||||
|
@ -1110,20 +1110,18 @@ Manager_unmanage(wndId) {
|
||||||
;; Find the next window that should have focus.
|
;; Find the next window that should have focus.
|
||||||
;; If there is no such window, choose the bar on the same monitor.
|
;; If there is no such window, choose the bar on the same monitor.
|
||||||
aView := Monitor_#%Manager_aMonitor%_aView_#1
|
aView := Monitor_#%Manager_aMonitor%_aView_#1
|
||||||
wndIds := View_#%Manager_aMonitor%_#%aView%_wndIds
|
StringTrimRight, wndIds, View_#%Manager_aMonitor%_#%aView%_wndIds, 1
|
||||||
StringSplit, wndId, wndIds, `;
|
StringSplit, wndId, wndIds, `;
|
||||||
If (wndId0 < 3)
|
If (wndId0 >= 2)
|
||||||
Manager_winActivate(0)
|
View_activateWindow(0, +1)
|
||||||
Else
|
Else
|
||||||
View_activateWindow(1)
|
Manager_winActivate(0)
|
||||||
|
|
||||||
;; Do our best to make sure that any unmanaged windows are left visible.
|
;; Do our best to make sure that any unmanaged windows are left visible.
|
||||||
Window_show(wndId)
|
Window_show(wndId)
|
||||||
a := Window_#%wndId%_tags & 1 << Monitor_#%Manager_aMonitor%_aView_#1 - 1
|
a := Window_#%wndId%_tags & 1 << aView - 1
|
||||||
Loop, % Config_viewCount
|
Loop, % Config_viewCount {
|
||||||
{
|
If (Window_#%wndId%_tags & 1 << A_Index - 1) {
|
||||||
If (Window_#%wndId%_tags & 1 << A_Index - 1)
|
|
||||||
{
|
|
||||||
StringReplace, View_#%Manager_aMonitor%_#%A_Index%_wndIds, View_#%Manager_aMonitor%_#%A_Index%_wndIds, %wndId%`;,
|
StringReplace, View_#%Manager_aMonitor%_#%A_Index%_wndIds, View_#%Manager_aMonitor%_#%A_Index%_wndIds, %wndId%`;,
|
||||||
Bar_updateView(Manager_aMonitor, A_Index)
|
Bar_updateView(Manager_aMonitor, A_Index)
|
||||||
}
|
}
|
||||||
|
|
|
@ -317,38 +317,31 @@ Monitor_toggleTaskBar()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Monitor_toggleWindowTag(t)
|
Monitor_toggleWindowTag(i, d = 0) {
|
||||||
{
|
|
||||||
Local aWndId, wndId
|
Local aWndId, wndId
|
||||||
|
|
||||||
WinGet, aWndId, ID, A
|
WinGet, aWndId, ID, A
|
||||||
If (InStr(Manager_managedWndIds, aWndId ";") And t >= 0 And t <= Config_viewCount)
|
If (InStr(Manager_managedWndIds, aWndId ";") And i >= 0 And i <= Config_viewCount) {
|
||||||
{
|
If (Window_#%aWndId%_tags & (1 << i - 1)) {
|
||||||
If (Window_#%aWndId%_tags & (1 << t - 1))
|
If Not ((Window_#%aWndId%_tags - (1 << i - 1)) = 0) {
|
||||||
{
|
Window_#%aWndId%_tags -= 1 << i - 1
|
||||||
If Not ((Window_#%aWndId%_tags - (1 << t - 1)) = 0)
|
StringReplace, View_#%Manager_aMonitor%_#%i%_wndIds, View_#%Manager_aMonitor%_#%i%_wndIds, %aWndId%`;,
|
||||||
{
|
Bar_updateView(Manager_aMonitor, i)
|
||||||
Window_#%aWndId%_tags -= 1 << t - 1
|
If (i = Monitor_#%Manager_aMonitor%_aView_#1) {
|
||||||
StringReplace, View_#%Manager_aMonitor%_#%t%_wndIds, View_#%Manager_aMonitor%_#%t%_wndIds, %aWndId%`;,
|
|
||||||
Bar_updateView(Manager_aMonitor, t)
|
|
||||||
If (t = Monitor_#%Manager_aMonitor%_aView_#1)
|
|
||||||
{
|
|
||||||
Manager_hideShow := True
|
Manager_hideShow := True
|
||||||
Window_hide(aWndId)
|
Window_hide(aWndId)
|
||||||
Manager_hideShow := False
|
Manager_hideShow := False
|
||||||
wndId := SubStr(View_#%Manager_aMonitor%_#%t%_wndIds, 1, InStr(View_#%Manager_aMonitor%_#%t%_wndIds, ";")-1)
|
wndId := SubStr(View_#%Manager_aMonitor%_#%i%_wndIds, 1, InStr(View_#%Manager_aMonitor%_#%i%_wndIds, ";")-1)
|
||||||
Manager_winActivate(wndId)
|
Manager_winActivate(wndId)
|
||||||
If Config_dynamicTiling
|
If Config_dynamicTiling
|
||||||
View_arrange(Manager_aMonitor, t)
|
View_arrange(Manager_aMonitor, i)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} Else {
|
||||||
Else
|
View_#%Manager_aMonitor%_#%i%_wndIds := aWndId ";" View_#%Manager_aMonitor%_#%i%_wndIds
|
||||||
{
|
View_#%Manager_aMonitor%_#%i%_aWndId := aWndId
|
||||||
View_#%Manager_aMonitor%_#%t%_wndIds := aWndId ";" View_#%Manager_aMonitor%_#%t%_wndIds
|
Bar_updateView(Manager_aMonitor, i)
|
||||||
View_#%Manager_aMonitor%_#%t%_aWndId := aWndId
|
Window_#%aWndId%_tags += 1 << i - 1
|
||||||
Bar_updateView(Manager_aMonitor, t)
|
|
||||||
Window_#%aWndId%_tags += 1 << t - 1
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
31
src/View.ahk
31
src/View.ahk
|
@ -35,11 +35,10 @@ View_init(m, v)
|
||||||
View_#%m%_#%v%_wndIds := ""
|
View_#%m%_#%v%_wndIds := ""
|
||||||
}
|
}
|
||||||
|
|
||||||
View_activateWindow(d)
|
View_activateWindow(i, d = 0) {
|
||||||
{
|
Local aWndId, direction, failure, j, v, wndId, wndId0, wndIds
|
||||||
Local aWndId, direction, failure, i, j, v, wndId, wndId0, wndIds
|
|
||||||
|
|
||||||
Debug_logMessage("DEBUG[1] View_activateWindow(" . d . ")", 1)
|
Debug_logMessage("DEBUG[1] View_activateWindow(" . i . ", " . d . ")", 1)
|
||||||
If (d = 0)
|
If (d = 0)
|
||||||
Return
|
Return
|
||||||
|
|
||||||
|
@ -50,29 +49,25 @@ View_activateWindow(d)
|
||||||
StringTrimRight, wndIds, View_#%Manager_aMonitor%_#%v%_wndIds, 1
|
StringTrimRight, wndIds, View_#%Manager_aMonitor%_#%v%_wndIds, 1
|
||||||
StringSplit, wndId, wndIds, `;
|
StringSplit, wndId, wndIds, `;
|
||||||
Debug_logMessage("DEBUG[2] wndId count: " . wndId0, 2, False)
|
Debug_logMessage("DEBUG[2] wndId count: " . wndId0, 2, False)
|
||||||
If (wndId0 > 1)
|
If (wndId0 > 1) {
|
||||||
{
|
|
||||||
If Window_#%aWndId%_isFloating
|
If Window_#%aWndId%_isFloating
|
||||||
Window_set(aWndId, "Bottom", "")
|
Window_set(aWndId, "Bottom", "")
|
||||||
Loop, % wndId0
|
Loop, % wndId0 {
|
||||||
{
|
If (wndId%A_Index% = aWndId) {
|
||||||
If (wndId%A_Index% = aWndId)
|
j := A_Index
|
||||||
{
|
|
||||||
i := A_Index
|
|
||||||
Break
|
Break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Debug_logMessage("DEBUG[2] Current wndId index: " . i, 2, False)
|
Debug_logMessage("DEBUG[2] Current wndId index: " . j, 2, False)
|
||||||
|
|
||||||
If (d > 0)
|
If (d > 0)
|
||||||
direction = 1
|
direction = 1
|
||||||
Else
|
Else
|
||||||
direction = -1
|
direction = -1
|
||||||
j := Manager_loop(i, d, 1, wndId0)
|
i := Manager_loop(j, d, 1, wndId0)
|
||||||
Loop, % wndId0
|
Loop, % wndId0 {
|
||||||
{
|
Debug_logMessage("DEBUG[2] Next wndId index: " . i, 2, False)
|
||||||
Debug_logMessage("DEBUG[2] Next wndId index: " . j, 2, False)
|
wndId := wndId%i%
|
||||||
wndId := wndId%j%
|
|
||||||
Window_set(wndId, "AlwaysOnTop", "On")
|
Window_set(wndId, "AlwaysOnTop", "On")
|
||||||
Window_set(wndId, "AlwaysOnTop", "Off")
|
Window_set(wndId, "AlwaysOnTop", "Off")
|
||||||
|
|
||||||
|
@ -80,7 +75,7 @@ View_activateWindow(d)
|
||||||
failure := Manager_winActivate(wndId)
|
failure := Manager_winActivate(wndId)
|
||||||
If Not failure
|
If Not failure
|
||||||
Break
|
Break
|
||||||
j := Manager_loop(j, direction, 1, wndId0)
|
i := Manager_loop(i, direction, 1, wndId0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue