summaryrefslogtreecommitdiff
path: root/find.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-02-06 13:47:19 -0600
committerJeff Carr <[email protected]>2025-02-06 13:47:19 -0600
commit88f33afbb777a3d02631c4eb6a2d6f6dbf7fba3f (patch)
tree818bf2c9af7253be3200eb69ba6a0aa2e94f7ba1 /find.go
parent9fa974f6c4071d0ae93109c6683338be426306e3 (diff)
window depth order works
Diffstat (limited to 'find.go')
-rw-r--r--find.go35
1 files changed, 24 insertions, 11 deletions
diff --git a/find.go b/find.go
index 434a42d..6833b9a 100644
--- a/find.go
+++ b/find.go
@@ -5,6 +5,7 @@ package main
import (
"fmt"
+ "slices"
"github.com/awesome-gocui/gocui"
log "go.wit.com/log"
@@ -111,23 +112,21 @@ func (tk *guiWidget) findBG() *guiWidget {
return nil
}
+// used by gocui.TabKey to rotate through the windows
func findNextWindow() *guiWidget {
var found bool
if len(me.allwin) == 0 {
return nil
}
- for _, win := range me.allwin {
- if win.activeWindow {
+ for _, tk := range me.allwin {
+ if tk.window.active {
found = true
- win.activeWindow = false
continue
}
if found {
- win.activeWindow = true
- return win
+ return tk
}
}
- me.allwin[0].activeWindow = true
// at the end, loop to the beginning
return me.allwin[0]
}
@@ -147,17 +146,31 @@ func findWindowUnderMouse() *guiWidget {
}
}
+ // print out the window list
+ for _, tk := range me.allwin {
+ log.Info("findWindowUnderMouse() print:", tk.labelN, tk.window.active, tk.window.order)
+ }
+
// now check if the active window is below the mouse
- for _, win := range me.allwin {
- if win.activeWindow {
- if win.full.inRect(w, h) {
- log.Info(fmt.Sprintf("findWindowUnderMouse() found %s active window (%dx%d)", win.cuiName, w, h))
- return win
+ for _, tk := range me.allwin {
+ if tk.window.active {
+ if tk.full.inRect(w, h) {
+ log.Info(fmt.Sprintf("findWindowUnderMouse() found %s active window (%dx%d)", tk.cuiName, w, h))
+ return tk
}
}
}
// well, just find any window then
+ // sorting by order might work?
+ slices.SortFunc(me.allwin, func(a, b *guiWidget) int {
+ return a.window.order - b.window.order
+ })
+
+ // print out the window list
+ for _, tk := range me.allwin {
+ log.Info("findWindowUnderMouse() print:", tk.labelN, tk.window.active, tk.window.order)
+ }
for _, win := range me.allwin {
if win.full.inRect(w, h) {
log.Info(fmt.Sprintf("findWindowUnderMouse() found %s window (%dx%d)", win.cuiName, w, h))