diff --git a/eventMouseMove.go b/eventMouseMove.go index 7c383a5..21d44fc 100644 --- a/eventMouseMove.go +++ b/eventMouseMove.go @@ -24,14 +24,12 @@ var currentDrag *guiWidget // this function uses the mouse position to highlight & unhighlight things // this is run every time the user moves the mouse over the terminal window func mouseMove(g *gocui.Gui) { - mx, my := g.MousePosition() - - w := mx - h := my + w, h := g.MousePosition() if me.supermouse { for _, tk := range findByXY(w, h) { - tk.dumpWidget("mouseMove()") + s := fmt.Sprintf("SM (%3d,%3d)", w, h) + tk.dumpWidget(s) } } @@ -79,7 +77,7 @@ func mouseMove(g *gocui.Gui) { for _, view := range g.Views() { view.Highlight = false } - if v, err := g.ViewByPosition(mx, my); err == nil { + if v, err := g.ViewByPosition(w, h); err == nil { v.Highlight = true } } @@ -105,7 +103,7 @@ func (tk *guiWidget) moveNew(g *gocui.Gui) { log.Info("NOT MOVE FLAG", tk.node.WidgetType) } tk.dumpWidget("moveNew() on " + tk.cuiName) - outputW := 140 + outputW := 180 outputH := 40 g.SetView("msg", w-xOffset, h-yOffset, w-xOffset+outputW, h-yOffset+outputH+me.FramePadH, 0) me.startOutputW = w - xOffset diff --git a/find.go b/find.go index f97a493..b8f4d4c 100644 --- a/find.go +++ b/find.go @@ -27,30 +27,31 @@ func findByXY(w int, h int) []*guiWidget { rootW := me.treeRoot.TK.(*guiWidget) // this searches the binary tree recursively (function is right below) - return findByXYreal(rootW, w, h) + return rootW.findByXYreal(w, h) } // this checks a widget to see if it is under (W,H), then checks the widget's children // anything that matches is passed back as an array of widgets -func findByXYreal(widget *guiWidget, w int, h int) []*guiWidget { +func (tk *guiWidget) findByXYreal(w int, h int) []*guiWidget { var widgets []*guiWidget - if !widget.Visible() { + if !tk.Visible() { // ignore widgets that are not visible } else { // check the location to see if this is under (W,H) // if it is, return this widget - if (widget.gocuiSize.w0 <= w) && (w <= widget.gocuiSize.w1) && - (widget.gocuiSize.h0 <= h) && (h <= widget.gocuiSize.h1) { - widgets = append(widgets, widget) + if (tk.gocuiSize.w0 <= w) && (w <= tk.gocuiSize.w1) && + (tk.gocuiSize.h0 <= h) && (h <= tk.gocuiSize.h1) { + widgets = append(widgets, tk) // log.Log(GOCUI, "findByXY() found", widget.node.WidgetType, w, h) } } + tk.verifyRect() // search through the children widgets in the binary tree - for _, child := range widget.children { - widgets = append(widgets, findByXYreal(child, w, h)...) + for _, child := range tk.children { + widgets = append(widgets, child.findByXYreal(w, h)...) } return widgets