summaryrefslogtreecommitdiff
path: root/tui/layout.go
diff options
context:
space:
mode:
authorcitrons <citrons@mondecitronne.com>2025-06-07 15:58:35 -0500
committercitrons <citrons@mondecitronne.com>2025-06-07 16:02:18 -0500
commit4fd84671877754ae3b66acb8a8af8cf0935a53c9 (patch)
tree4d7b6de81bd28e0c1184037f236e1a0e3701b646 /tui/layout.go
parent4067adfc361e87bc4e73e31fdfc4933802f05413 (diff)
context menus
Diffstat (limited to 'tui/layout.go')
-rw-r--r--tui/layout.go15
1 files changed, 14 insertions, 1 deletions
diff --git a/tui/layout.go b/tui/layout.go
index ede0fa6..039ce52 100644
--- a/tui/layout.go
+++ b/tui/layout.go
@@ -24,6 +24,7 @@ type Box struct {
computedRect rect
isOverflow bool
mouseEvent MouseEvent
+ contextMenu []string
}
type BoxSize int
@@ -439,6 +440,9 @@ func (b *Box) mouseEvents(ev MouseEvent) {
bev.Pressed = ev.Pressed
bev.Released = ev.Released
bev.Scroll = ev.Scroll
+ if ev.Pressed && ev.Button == 2 && len(b.contextMenu) > 0 {
+ openContextMenu(ev.X, ev.Y, b)
+ }
}
b.mouseEvent = bev
for _, c := range b.children {
@@ -470,5 +474,14 @@ func DrawLayout() {
b.drawComputed(parentRect, DefaultStyle)
ev := getLastEvent()
- b.mouseEvents(ev.Mouse)
+ if menuState.open {
+ processContextMenu(ev.Mouse)
+ var releaseEvent MouseEvent
+ releaseEvent.Button = ev.Mouse.Button
+ releaseEvent.ReleasedAnywhere = ev.Mouse.ReleasedAnywhere
+ b.mouseEvents(releaseEvent)
+ } else {
+ b.mouseEvents(ev.Mouse)
+ }
+ drawContextMenu()
}