diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2018-03-08 17:50:52 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2018-04-12 14:22:33 +0800 |
commit | dce7a8aae105a1f3b94822a2d7087c715610cb39 (patch) | |
tree | 6ac571a7904a6abbc27593041379cb2bb5500b8a | |
parent | df01e4d4323e9138a6a7eb900e839cc154ce06bb (diff) | |
download | fbterm-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.cpp | 13 | ||||
-rw-r--r-- | src/screen.cpp | 13 |
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) |