window: keep mouse disabled if it was initially disabled
This commit is contained in:
@@ -308,13 +308,13 @@ namespace Mouse {
|
||||
|
||||
namespace {
|
||||
|
||||
bool mouseEnabled = false;
|
||||
bool supportEnabled = false;
|
||||
|
||||
}
|
||||
|
||||
void enable()
|
||||
{
|
||||
if (mouseEnabled)
|
||||
if (!supportEnabled)
|
||||
return;
|
||||
// save old highlight mouse tracking
|
||||
std::printf("\e[?1001s");
|
||||
@@ -322,12 +322,11 @@ void enable()
|
||||
std::printf("\e[?1000h");
|
||||
// try to enable extended (urxvt) mouse tracking
|
||||
std::printf("\e[?1015h");
|
||||
mouseEnabled = true;
|
||||
}
|
||||
|
||||
void disable()
|
||||
{
|
||||
if (!mouseEnabled)
|
||||
if (!supportEnabled)
|
||||
return;
|
||||
// disable extended (urxvt) mouse tracking
|
||||
std::printf("\e[?1015l");
|
||||
@@ -335,7 +334,6 @@ void disable()
|
||||
std::printf("\e[?1000l");
|
||||
// restore old highlight mouse tracking
|
||||
std::printf("\e[?1001r");
|
||||
mouseEnabled = false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -360,8 +358,8 @@ void initScreen(bool enable_colors, bool enable_mouse)
|
||||
curs_set(0);
|
||||
|
||||
// setup mouse
|
||||
if (enable_mouse)
|
||||
Mouse::enable();
|
||||
Mouse::supportEnabled = enable_mouse;
|
||||
Mouse::enable();
|
||||
|
||||
// initialize readline (needed, otherwise we get segmentation
|
||||
// fault on SIGWINCH). also, initialize first as doing this
|
||||
|
||||
Reference in New Issue
Block a user