From 1193ca1ac272904d18d04ebb5bb27522484e0b0e Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sun, 2 Jul 2017 15:30:31 +0200 Subject: added ESC key in PS/2 keyboard driver allow pressing ESC in graphics mode to return to text mode --- src/kernel/kernel.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/kernel/kernel.c') diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index b97c3ea..55dd6f9 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -267,13 +267,6 @@ static void handle_keyboard_event( keyboard_event_t *event, void *context ) break; case MODE_GRAPHICS: - vga_text_restore( vga_text ); - - if( vga_set_mode( vga, vga_make_mode( VGA_MODE_TYPE_TEXT, 640, 480, 4 ) ) ) { - vga_text_set_cursor( vga_text, vga_text->cursor_x, vga_text->cursor_y ); - mouse_set_resolution( mouse, vga_text->res_x, vga_text->res_y ); - global_context->mode = MODE_TEXT; - } break; } @@ -297,6 +290,14 @@ static void handle_keyboard_event( keyboard_event_t *event, void *context ) if( event->type == KEYBOARD_EVENT_TYPE_KEY_PRESSED ) { if( event->key == KEYBOARD_KEY_ASCII ) { ((widget_t *)desktop)->vtable->on_key_down( &global_context->desktop, event->ascii_key ); + } else if( event->key == KEYBOARD_KEY_ESC ) { + vga_text_restore( vga_text ); + + if( vga_set_mode( vga, vga_make_mode( VGA_MODE_TYPE_TEXT, 640, 480, 4 ) ) ) { + vga_text_set_cursor( vga_text, vga_text->cursor_x, vga_text->cursor_y ); + mouse_set_resolution( mouse, vga_text->res_x, vga_text->res_y ); + global_context->mode = MODE_TEXT; + } } } break; -- cgit v1.2.3-54-g00ecf