summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2008-05-28 13:50:49 -0400
committerRay Strode <rstrode@redhat.com>2008-05-28 13:50:49 -0400
commitcad6ba8b75821d3d7eb19eda24ed1ffcda6d7d2e (patch)
tree241ab7527c512f86a4ca4f9179fd132d83c56993 /src
parent7952221f065fe4c6e5177a66eaf4bfe46255413a (diff)
downloadplymouth-cad6ba8b75821d3d7eb19eda24ed1ffcda6d7d2e.tar.gz
plymouth-cad6ba8b75821d3d7eb19eda24ed1ffcda6d7d2e.tar.xz
plymouth-cad6ba8b75821d3d7eb19eda24ed1ffcda6d7d2e.zip
Add the ability to toggle off graphics mode with ctrl-T
When debugging it's useful to be able to force text mode so text messages become visible on screen. ctrl-t and ctrl-v combined make it a lot easier to see what's going on.
Diffstat (limited to 'src')
-rw-r--r--src/ply-window.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/ply-window.c b/src/ply-window.c
index 222cd80..b1f5944 100644
--- a/src/ply-window.c
+++ b/src/ply-window.c
@@ -43,6 +43,7 @@
#include "ply-logger.h"
#include "ply-utils.h"
+#define KEY_CTRL_T '\024'
#define KEY_CTRL_V '\026'
#define KEY_ESCAPE '\033'
#define KEY_RETURN '\r'
@@ -60,6 +61,8 @@ struct _ply_window
ply_fd_watch_t *tty_fd_watch;
ply_window_mode_t mode;
+ uint32_t should_force_text_mode : 1;
+
ply_window_keyboard_input_handler_t keyboard_input_handler;
void *keyboard_input_handler_user_data;
@@ -107,6 +110,13 @@ process_keyboard_input (ply_window_t *window,
ply_trace ("verbose mode toggled!");
return;
+ case KEY_CTRL_T:
+ ply_trace ("toggle text mode!");
+ window->should_force_text_mode = !window->should_force_text_mode;
+ ply_window_set_mode (window, window->mode);
+ ply_trace ("text mode toggled!");
+ return;
+
case KEY_ESCAPE:
ply_trace ("escape key!");
if (window->escape_handler != NULL)
@@ -274,7 +284,8 @@ ply_window_set_mode (ply_window_t *window,
break;
case PLY_WINDOW_MODE_GRAPHICS:
- if (ioctl (window->tty_fd, KDSETMODE, KD_GRAPHICS) < 0)
+ if (ioctl (window->tty_fd, KDSETMODE,
+ window->should_force_text_mode? KD_TEXT : KD_GRAPHICS) < 0)
return false;
break;
}