pub(crate) fn set_focused_window(&mut self, window: Window) {
        match window {
            Window::Hex => {
                self.key_handler = Box::from(Editor::Hex);
                self.data.editor = Editor::Hex;
            }
            Window::Ascii => {
                self.key_handler = Box::from(Editor::Ascii);
                self.data.editor = Editor::Ascii;
            }
            Window::JumpToByte => {
                self.key_handler = Box::from(JumpToByte::new());
                self.display.comp_layouts.popup = ScreenHandler::calculate_popup_dimensions(
                    self.display.terminal_size,
                    self.key_handler.as_ref(),
                );
            }
            Window::Search => {
                self.key_handler = Box::from(Search::new());
                self.display.comp_layouts.popup = ScreenHandler::calculate_popup_dimensions(
                    self.display.terminal_size,
                    self.key_handler.as_ref(),
                );
            }
            Window::UnsavedChanges => {
                self.key_handler = Box::from(UnsavedChanges::new());
                self.display.comp_layouts.popup = ScreenHandler::calculate_popup_dimensions(
                    self.display.terminal_size,
                    self.key_handler.as_ref(),
                );
            }
            // We should never try and focus these windows to accept input.
            Window::Unhandled | Window::Label(_) => {
                panic!()
            }
        }
    }
Sets the current [`KeyHandler`]. This should be used when trying to focus another window.
Setting the [`KeyHandler`] directly could cause errors.

Popup dimensions are also changed here and are safe to do so because there are currently
no popups that have dimensions based off of the size of the terminal frame.
src/app.rs