summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2009-10-02 23:37:02 -0400
committerRay Strode <rstrode@redhat.com>2009-10-04 10:45:36 -0400
commita8676e2c08a6b07927d6deddb6d7bc4431ebba9c (patch)
tree9db90e81adb46e469d04045f696e2f92cc5336f5
parenta76c5bc4b74b4f552641ed2fa847f4387163b25a (diff)
[renderer] Move VT switching to renderer plugins
Since not all renderer plugins should switch VTs we do it from the individual plugins now.
-rw-r--r--src/libplybootsplash/ply-renderer.c4
-rw-r--r--src/main.c3
-rw-r--r--src/plugins/renderers/drm/plugin.c7
-rw-r--r--src/plugins/renderers/frame-buffer/plugin.c7
4 files changed, 14 insertions, 7 deletions
diff --git a/src/libplybootsplash/ply-renderer.c b/src/libplybootsplash/ply-renderer.c
index 5410feb8..dd64f032 100644
--- a/src/libplybootsplash/ply-renderer.c
+++ b/src/libplybootsplash/ply-renderer.c
@@ -299,10 +299,6 @@ ply_renderer_flush_head (ply_renderer_t *renderer,
assert (renderer->plugin_interface != NULL);
assert (head != NULL);
- if (ply_console_get_active_vt (renderer->console) !=
- ply_terminal_get_vt_number (renderer->terminal))
- return;
-
renderer->plugin_interface->flush_head (renderer->backend, head);
}
diff --git a/src/main.c b/src/main.c
index d79b816e..08ec1ae4 100644
--- a/src/main.c
+++ b/src/main.c
@@ -989,9 +989,6 @@ add_default_displays_and_keyboard (state_t *state)
return;
}
- ply_console_set_active_vt (state->console,
- ply_terminal_get_vt_number (terminal));
-
renderer = ply_renderer_new (NULL, terminal, state->console);
if (!ply_renderer_open (renderer))
diff --git a/src/plugins/renderers/drm/plugin.c b/src/plugins/renderers/drm/plugin.c
index 2c5e1aa9..05e36fa2 100644
--- a/src/plugins/renderers/drm/plugin.c
+++ b/src/plugins/renderers/drm/plugin.c
@@ -783,6 +783,9 @@ map_to_device (ply_renderer_backend_t *backend)
node = next_node;
}
+ ply_console_set_active_vt (backend->console,
+ ply_terminal_get_vt_number (backend->terminal));
+
return head_mapped;
}
@@ -922,6 +925,10 @@ flush_head (ply_renderer_backend_t *backend,
assert (backend != NULL);
+ if (ply_console_get_active_vt (backend->console) !=
+ ply_terminal_get_vt_number (backend->terminal))
+ return;
+
ply_console_set_mode (backend->console, PLY_CONSOLE_MODE_GRAPHICS);
ply_terminal_set_unbuffered_input (backend->terminal);
pixel_buffer = head->pixel_buffer;
diff --git a/src/plugins/renderers/frame-buffer/plugin.c b/src/plugins/renderers/frame-buffer/plugin.c
index 6f45b8f4..0163daa0 100644
--- a/src/plugins/renderers/frame-buffer/plugin.c
+++ b/src/plugins/renderers/frame-buffer/plugin.c
@@ -491,6 +491,9 @@ map_to_device (ply_renderer_backend_t *backend)
initialize_head (backend, head);
+ ply_console_set_active_vt (backend->console,
+ ply_terminal_get_vt_number (backend->terminal));
+
return true;
}
@@ -522,6 +525,10 @@ flush_head (ply_renderer_backend_t *backend,
assert (backend != NULL);
assert (&backend->head == head);
+ if (ply_console_get_active_vt (backend->console) !=
+ ply_terminal_get_vt_number (backend->terminal))
+ return;
+
ply_console_set_mode (backend->console, PLY_CONSOLE_MODE_GRAPHICS);
ply_terminal_set_unbuffered_input (backend->terminal);
pixel_buffer = head->pixel_buffer;