From b455cc9ad7694268346e26fc44a7f6cd7524e877 Mon Sep 17 00:00:00 2001 From: Alexey Yerin Date: Tue, 27 Apr 2021 21:22:35 +0300 Subject: Make mouse support optional To not break existing users, mouse is enabled by default but you have an option to disable it with "mouse: false" in your /.confg/senpai/senpai.yaml. --- app.go | 6 ++++++ config.go | 1 + doc/senpai.5.scd | 3 +++ ui/ui.go | 5 ++++- 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app.go b/app.go index 2d5be8c..a336588 100644 --- a/app.go +++ b/app.go @@ -52,12 +52,18 @@ func NewApp(cfg Config) (app *App, err error) { } } + mouse := true + if cfg.Mouse != nil { + mouse = *cfg.Mouse + } + app.win, err = ui.New(ui.Config{ NickColWidth: cfg.NickColWidth, ChanColWidth: cfg.ChanColWidth, AutoComplete: func(cursorIdx int, text []rune) []ui.Completion { return app.completions(cursorIdx, text) }, + Mouse: mouse, }) if err != nil { return diff --git a/config.go b/config.go index dde65de..fcd4cc3 100644 --- a/config.go +++ b/config.go @@ -16,6 +16,7 @@ type Config struct { NoTLS bool `yaml:"no-tls"` NoTypings bool `yaml:"no-typings"` + Mouse *bool Highlights []string OnHighlight string `yaml:"on-highlight"` diff --git a/doc/senpai.5.scd b/doc/senpai.5.scd index b0d27ec..1218f73 100644 --- a/doc/senpai.5.scd +++ b/doc/senpai.5.scd @@ -68,6 +68,9 @@ Some settings are required, the others are optional. Prevent senpai from sending typing notifications which let others know when you are typing a message. Defaults to false. +*mouse* + Enable or disable mouse support. Defaults to true. + *debug* Dump all sent and received data to the home buffer, useful for debugging. By default, false. diff --git a/ui/ui.go b/ui/ui.go index 86608d1..9f730a3 100644 --- a/ui/ui.go +++ b/ui/ui.go @@ -12,6 +12,7 @@ type Config struct { NickColWidth int ChanColWidth int AutoComplete func(cursorIdx int, text []rune) []Completion + Mouse bool } type UI struct { @@ -40,7 +41,9 @@ func New(config Config) (ui *UI, err error) { if err != nil { return } - ui.screen.EnableMouse() + if ui.screen.HasMouse() && config.Mouse { + ui.screen.EnableMouse() + } ui.screen.EnablePaste() w, h := ui.screen.Size() -- cgit v1.2.3