diff options
Diffstat (limited to 'eventMouse.go')
| -rw-r--r-- | eventMouse.go | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/eventMouse.go b/eventMouse.go index 6d0c684..c4871ec 100644 --- a/eventMouse.go +++ b/eventMouse.go @@ -36,25 +36,47 @@ func mouseUp(g *gocui.Gui, v *gocui.View) error { // widget was underneath so you can active // the right response for the toolkit user's app func mouseDown(g *gocui.Gui, v *gocui.View) error { - mx, my := g.MousePosition() log.Info("mouseDown() setting globalMouseDown = true") me.globalMouseDown = true + if me.dropdown.active { + w, h := g.MousePosition() + log.Info("mouseDown() stopping here. dropdwon menu is in effect") + for _, tk := range findByXY(w, h) { + if tk.node.WidgetType == widget.Flag { + log.Info("SENDING CLICK TO Dropdown Flag") + tk.doWidgetClick(w, h) + return nil + } + } + log.Info("never found dropdown") + me.dropdown.active = false + return nil + } + var found bool = false - for _, tk := range findByXY(mx, my) { + w, h := g.MousePosition() + for _, tk := range findByXY(w, h) { tk.dumpWidget("mouseDown()") if tk.node.WidgetType == widget.Button { log.Info("SENDING CLICK TO Button") - tk.doWidgetClick(mx, my) + tk.doWidgetClick(w, h) return nil } if tk.node.WidgetType == widget.Checkbox { log.Info("SENDING CLICK TO Checkbox") - tk.doWidgetClick(mx, my) + tk.doWidgetClick(w, h) + return nil + } + if tk.node.WidgetType == widget.Dropdown { + log.Info("SENDING CLICK TO Dropdown") + tk.doWidgetClick(w, h) return nil } found = true } + + mx, my := g.MousePosition() for _, tk := range findByXY(mx, my) { if tk.node.WidgetType == widget.Window { tk.dragW = mx - tk.gocuiSize.w0 |
