diff options
| author | Jeff Carr <[email protected]> | 2025-02-06 13:47:19 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-02-06 13:47:19 -0600 |
| commit | 88f33afbb777a3d02631c4eb6a2d6f6dbf7fba3f (patch) | |
| tree | 818bf2c9af7253be3200eb69ba6a0aa2e94f7ba1 /find.go | |
| parent | 9fa974f6c4071d0ae93109c6683338be426306e3 (diff) | |
window depth order works
Diffstat (limited to 'find.go')
| -rw-r--r-- | find.go | 35 |
1 files changed, 24 insertions, 11 deletions
@@ -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)) |
