if (renderer_type != PLY_RENDERER_TYPE_NONE) {
ply_terminal_t *terminal = NULL;
- if (!manager->local_console_managed) {
+ if (!manager->local_console_managed &&
+ manager->local_console_terminal != NULL &&
+ ply_terminal_is_vt (manager->local_console_terminal)) {
terminal = manager->local_console_terminal;
}
ply_device_manager_flags_t flags)
{
ply_device_manager_t *manager;
- ply_terminal_t *terminal;
manager = calloc (1, sizeof(ply_device_manager_t));
manager->loop = NULL;
parse_vconsole_conf (manager);
- terminal = ply_terminal_new (default_tty, manager->keymap);
-
- if (!ply_terminal_is_vt (terminal)) {
- ply_terminal_free (terminal);
- terminal = NULL;
- }
-
manager->terminals = ply_hashtable_new (ply_hashtable_string_hash, ply_hashtable_string_compare);
manager->renderers = ply_hashtable_new (ply_hashtable_string_hash, ply_hashtable_string_compare);
+ manager->local_console_terminal = ply_terminal_new (default_tty, manager->keymap);
manager->input_devices = ply_hashtable_new (ply_hashtable_string_hash, ply_hashtable_string_compare);
- manager->local_console_terminal = terminal;
manager->keyboards = ply_list_new ();
manager->text_displays = ply_list_new ();
manager->pixel_displays = ply_list_new ();