summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2018-03-08 17:50:52 +0800
committerJeremy Kerr <jk@ozlabs.org>2018-04-12 14:22:33 +0800
commitdce7a8aae105a1f3b94822a2d7087c715610cb39 (patch)
tree6ac571a7904a6abbc27593041379cb2bb5500b8a
parentdf01e4d4323e9138a6a7eb900e839cc154ce06bb (diff)
downloadfbterm-dce7a8aae105a1f3b94822a2d7087c715610cb39.tar.gz
fbterm-dce7a8aae105a1f3b94822a2d7087c715610cb39.zip
input: move cursor & blank mode handling to input layer
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
-rw-r--r--src/input.cpp13
-rw-r--r--src/screen.cpp13
2 files changed, 13 insertions, 13 deletions
diff --git a/src/input.cpp b/src/input.cpp
index 1e81ace..a623536 100644
--- a/src/input.cpp
+++ b/src/input.cpp
@@ -37,6 +37,12 @@
#include "improxy.h"
#include "fbconfig.h"
+static const s8 show_cursor[] = "\e[?25h";
+static const s8 hide_cursor[] = "\e[?25l";
+static const s8 disable_blank[] = "\e[9;0]";
+static const s8 enable_blank[] = "\e[9;10]";
+static const s8 clear_screen[] = "\e[2J\e[H";
+
DEFINE_INSTANCE(TtyInput)
class TtyInputVT : public TtyInput, public IoPipe {
@@ -101,6 +107,9 @@ TtyInput *TtyInput::createInstance()
TtyInputVT::TtyInputVT()
{
setFd(dup(STDIN_FILENO));
+
+ s32 ret = ::write(STDIN_FILENO, hide_cursor, sizeof(hide_cursor) - 1);
+ ret = ::write(STDIN_FILENO, disable_blank, sizeof(disable_blank) - 1);
}
TtyInputVT::~TtyInputVT()
@@ -110,6 +119,10 @@ TtyInputVT::~TtyInputVT()
setupSysKey(true);
ioctl(STDIN_FILENO, KDSKBMODE, oldKbMode);
tcsetattr(STDIN_FILENO, TCSAFLUSH, &oldTm);
+
+ s32 ret = ::write(STDIN_FILENO, show_cursor, sizeof(show_cursor) - 1);
+ ret = ::write(STDIN_FILENO, enable_blank, sizeof(enable_blank) - 1);
+ ret = ::write(STDIN_FILENO, clear_screen, sizeof(clear_screen) - 1);
}
bool TtyInput::isActive(void)
diff --git a/src/screen.cpp b/src/screen.cpp
index fee1f05..e342889 100644
--- a/src/screen.cpp
+++ b/src/screen.cpp
@@ -36,12 +36,6 @@
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#define redraw(args...) (FbShellManager::instance()->redraw(args))
-static const s8 show_cursor[] = "\e[?25h";
-static const s8 hide_cursor[] = "\e[?25l";
-static const s8 disable_blank[] = "\e[9;0]";
-static const s8 enable_blank[] = "\e[9;10]";
-static const s8 clear_screen[] = "\e[2J\e[H";
-
DEFINE_INSTANCE(Screen)
Screen *Screen::createInstance()
@@ -121,19 +115,12 @@ Screen::Screen()
Config::instance()->getOption("screen-rotate", type);
if (type > Rotate270) type = Rotate0;
mRotateType = (RotateType)type;
-
- s32 ret = write(STDIN_FILENO, hide_cursor, sizeof(hide_cursor) - 1);
- ret = write(STDIN_FILENO, disable_blank, sizeof(disable_blank) - 1);
}
Screen::~Screen()
{
Font::uninstance();
endFillDraw();
-
- s32 ret = write(STDIN_FILENO, show_cursor, sizeof(show_cursor) - 1);
- ret = write(STDIN_FILENO, enable_blank, sizeof(enable_blank) - 1);
- ret = write(STDIN_FILENO, clear_screen, sizeof(clear_screen) - 1);
}
void Screen::showInfo(bool verbose)
OpenPOWER on IntegriCloud