diff --git a/device/ps2controller.cc b/device/ps2controller.cc index 7d25307..8bed30a 100644 --- a/device/ps2controller.cc +++ b/device/ps2controller.cc @@ -122,9 +122,6 @@ bool fetch(Key &pressed) { pressed = key_decoder.decode(out_buffer); - if (pressed.ctrl() && pressed.alt() && pressed.scancode == Key::KEY_DEL) - System::reboot(); - if (pressed.alt() || pressed.ctrl() || !pressed.valid()) return false; else diff --git a/interrupt/handlers.cc b/interrupt/handlers.cc index 128b416..05c6aae 100644 --- a/interrupt/handlers.cc +++ b/interrupt/handlers.cc @@ -72,9 +72,12 @@ enum PAGE_FAULT_ERROR { extern TextStream kout; extern Ticketlock koutlock; void handle_keyboard() { - Key key = Key(); if (PS2Controller::fetch(key)) { + + if (key.ctrl() && key.alt() && key.scancode == Key::KEY_DEL) + System::reboot(); + koutlock.lock(); kout << key.ascii() << flush ; koutlock.unlock();