uint32_t local_console_managed : 1;
uint32_t local_console_is_text : 1;
uint32_t serial_consoles_detected : 1;
+ uint32_t renderers_activated : 1;
+ uint32_t keyboards_activated : 1;
};
static void
create_pixel_displays_for_renderer (manager, renderer);
ply_hashtable_insert (manager->renderers, strdup (device_path), renderer);
+ create_pixel_displays_for_renderer (manager, renderer);
+
+ if (manager->renderers_activated) {
+ ply_trace ("activating renderer");
+ ply_renderer_activate (renderer);
+ }
} else if (terminal != NULL) {
keyboard = ply_keyboard_new_for_terminal (terminal);
ply_list_append_data (manager->keyboards, keyboard);
}
}
- if (keyboard != NULL) {
+ if (keyboard != NULL && manager->keyboards_activated) {
+ ply_trace ("activating keyboards");
ply_keyboard_watch_for_input (keyboard);
}
}
(ply_hashtable_foreach_func_t *)
activate_renderer,
manager);
+
+ manager->renderers_activated = true;
}
static void
(ply_hashtable_foreach_func_t *)
deactivate_renderer,
manager);
+
+ manager->renderers_activated = false;
}
void
node = next_node;
}
+
+ manager->keyboards_activated = true;
}
void
node = next_node;
}
+
+ manager->keyboards_activated = false;
}