diff options
author | delthas <delthas@dille.cc> | 2022-02-13 14:22:44 +0100 |
---|---|---|
committer | delthas <delthas@dille.cc> | 2022-02-13 14:22:44 +0100 |
commit | f6a5181eff5a827a907a13a609f7c38de4874579 (patch) | |
tree | a1f55607078d5db3c378dd22e88ff341d968f96c /app.go | |
parent | Make 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.go | 27 |
1 files changed, 25 insertions, 2 deletions
@@ -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) } } |