summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2014-01-24 15:08:10 -0500
committerRay Strode <rstrode@redhat.com>2014-01-24 15:14:19 -0500
commit9255a442e93a4fce835ca6e7e9dc9023be6eaf30 (patch)
tree1be11d77e5149b147e5e80c5daa4be815db8d885
parent382305e4a9f7b4c221968fcba7394b1cc03b454e (diff)
seat: proceed without renderer if type is AUTO and renderer fails
If a seat gets opened with a renderer type of AUTO, and the renderer fails to open, then it's okay and expected to proceed without a renderer (and just use the terminal). The code attempted to do this but failed to nullify the seat->renderer object, so it ended up going down the renderer-active code path. This commit fixes that.
-rw-r--r--src/libply-splash-core/ply-seat.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/libply-splash-core/ply-seat.c b/src/libply-splash-core/ply-seat.c
index d9c7a2b3..541b29e6 100644
--- a/src/libply-splash-core/ply-seat.c
+++ b/src/libply-splash-core/ply-seat.c
@@ -117,15 +117,22 @@ ply_seat_open (ply_seat_t *seat,
renderer = ply_renderer_new (renderer_type, device, seat->terminal);
- if (!ply_renderer_open (renderer) && renderer_type != PLY_RENDERER_TYPE_AUTO)
+ if (!ply_renderer_open (renderer))
{
ply_trace ("could not open renderer for %s", device);
ply_renderer_free (renderer);
- return false;
- }
- seat->renderer = renderer;
- seat->renderer_active = true;
+ seat->renderer = NULL;
+ seat->renderer_active = false;
+
+ if (renderer_type != PLY_RENDERER_TYPE_AUTO)
+ return false;
+ }
+ else
+ {
+ seat->renderer = renderer;
+ seat->renderer_active = true;
+ }
}
if (seat->renderer != NULL)