diff options
-rw-r--r-- | app.go | 12 | ||||
-rw-r--r-- | irc/session.go | 4 |
2 files changed, 16 insertions, 0 deletions
@@ -194,6 +194,14 @@ func (app *App) ircLoop() { src: ircEvent, content: session, } + go func() { + for stop := range session.TypingStops() { + app.events <- event{ + src: ircEvent, + content: stop, + } + } + }() for msg := range in { if app.cfg.Debug { app.queueStatusLine(ui.Line{ @@ -501,6 +509,10 @@ func (app *App) handleIRCEvent(ev interface{}) { app.s = s return } + if _, ok := ev.(irc.Typing); ok { + // Just refresh the screen. + return + } msg := ev.(irc.Message) diff --git a/irc/session.go b/irc/session.go index d4eec21..f799f38 100644 --- a/irc/session.go +++ b/irc/session.go @@ -244,6 +244,10 @@ func (s *Session) Typings(target string) []string { return res } +func (s *Session) TypingStops() <-chan Typing { + return s.typings.Stops() +} + func (s *Session) ChannelsSharedWith(name string) []string { var user *User if u, ok := s.users[s.Casemap(name)]; ok { |