summaryrefslogtreecommitdiff
path: root/eventMouse.go
diff options
context:
space:
mode:
Diffstat (limited to 'eventMouse.go')
-rw-r--r--eventMouse.go30
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