diff options
Diffstat (limited to '')
-rw-r--r-- | src/xterm_mouse.cc | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/xterm_mouse.cc b/src/xterm_mouse.cc index f1f330a..0091f79 100644 --- a/src/xterm_mouse.cc +++ b/src/xterm_mouse.cc @@ -42,7 +42,6 @@ void xterm_mouse::handle_mouse() { bool release = false; - int ch; size_t index = 0; int bstate, x, y; char buffer[64]; @@ -52,7 +51,7 @@ xterm_mouse::handle_mouse() if (index >= sizeof(buffer) - 1) { break; } - ch = getch(); + auto ch = getch(); switch (ch) { case 'm': release = true; @@ -81,11 +80,13 @@ void xterm_mouse::set_enabled(bool enabled) { if (is_available()) { - putp(tparm((char*) XT_TERMCAP, enabled ? 1 : 0)); - putp(tparm((char*) XT_TERMCAP_TRACKING, enabled ? 1 : 0)); - putp(tparm((char*) XT_TERMCAP_SGR, enabled ? 1 : 0)); - fflush(stdout); - this->xm_enabled = enabled; + if (this->xm_enabled != enabled) { + putp(tparm((char*) XT_TERMCAP, enabled ? 1 : 0)); + putp(tparm((char*) XT_TERMCAP_TRACKING, enabled ? 1 : 0)); + putp(tparm((char*) XT_TERMCAP_SGR, enabled ? 1 : 0)); + fflush(stdout); + this->xm_enabled = enabled; + } } else { log_warning("mouse support is not available"); } |