summaryrefslogtreecommitdiffstats
path: root/src/xterm_mouse.cc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/xterm_mouse.cc15
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");
}