summaryrefslogtreecommitdiff
path: root/app.go
diff options
context:
space:
mode:
authordelthas <delthas@dille.cc>2022-02-13 14:22:44 +0100
committerdelthas <delthas@dille.cc>2022-02-13 14:22:44 +0100
commitf6a5181eff5a827a907a13a609f7c38de4874579 (patch)
treea1f55607078d5db3c378dd22e88ff341d968f96c /app.go
parentMake CTRL+C alternatively clear the input and set '/quit' in it (diff)
Enable clicking on channel members to open a query with them
Diffstat (limited to 'app.go')
-rw-r--r--app.go27
1 files changed, 25 insertions, 2 deletions
diff --git a/app.go b/app.go
index 8b52465..d26cf68 100644
--- a/app.go
+++ b/app.go
@@ -430,16 +430,39 @@ func (app *App) handleMouseEvent(ev *tcell.EventMouse) {
app.win.ScrollDownBy(4)
}
}
- if ev.Buttons()&tcell.ButtonPrimary != 0 && x < app.cfg.ChanColWidth {
- app.win.ClickBuffer(y + app.win.ChannelOffset())
+ if ev.Buttons()&tcell.ButtonPrimary != 0 {
+ if x < app.cfg.ChanColWidth {
+ app.win.ClickBuffer(y + app.win.ChannelOffset())
+ } else if x > w-app.cfg.MemberColWidth {
+ app.win.ClickMember(y + app.win.MemberOffset())
+ }
}
if ev.Buttons() == 0 {
if x < app.cfg.ChanColWidth {
if i := y + app.win.ChannelOffset(); i == app.win.ClickedBuffer() {
app.win.GoToBufferNo(i)
}
+ } else if x > w-app.cfg.MemberColWidth {
+ if i := y + app.win.MemberOffset(); i == app.win.ClickedMember() {
+ netID, target := app.win.CurrentBuffer()
+ s := app.sessions[netID]
+ if s != nil && target != "" {
+ members := s.Names(target)
+ if i < len(members) {
+ buffer := members[i].Name.Name
+ i, added := app.win.AddBuffer(netID, "", buffer)
+ app.win.JumpBufferIndex(i)
+ if added {
+ s.MonitorAdd(buffer)
+ s.ReadGet(buffer)
+ s.NewHistoryRequest(buffer).WithLimit(500).Before(time.Now())
+ }
+ }
+ }
+ }
}
app.win.ClickBuffer(-1)
+ app.win.ClickMember(-1)
}
}