summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@redhat.com>2008-05-27 22:22:57 -0400
committerKristian Høgsberg <krh@redhat.com>2008-05-27 22:22:57 -0400
commit793c2e5e5725c98e48ac0827e2e858b818c51d70 (patch)
tree9f8866ae6c608a5fca006a953e8c7adb7a4312c5 /src
parent5867cf994cc741d39536985faf4538de9f9661db (diff)
downloadplymouth-793c2e5e5725c98e48ac0827e2e858b818c51d70.tar.gz
plymouth-793c2e5e5725c98e48ac0827e2e858b818c51d70.tar.xz
plymouth-793c2e5e5725c98e48ac0827e2e858b818c51d70.zip
Call ply_boot_splash_hide in on_quit handler in test case.
Diffstat (limited to 'src')
-rw-r--r--src/ply-boot-splash.c47
1 files changed, 27 insertions, 20 deletions
diff --git a/src/ply-boot-splash.c b/src/ply-boot-splash.c
index 70acfa6..0e7ab7f 100644
--- a/src/ply-boot-splash.c
+++ b/src/ply-boot-splash.c
@@ -319,6 +319,14 @@ ply_boot_splash_attach_to_event_loop (ply_boot_splash_t *splash,
#include "ply-event-loop.h"
#include "ply-boot-splash.h"
+typedef struct test_state test_state_t;
+struct test_state {
+ ply_event_loop_t *loop;
+ ply_boot_splash_t *splash;
+ ply_window_t *window;
+ ply_buffer_t *buffer;
+};
+
static void
on_timeout (ply_boot_splash_t *splash)
{
@@ -331,60 +339,59 @@ on_timeout (ply_boot_splash_t *splash)
}
static void
-on_quit (ply_event_loop_t *loop)
+on_quit (test_state_t *state)
{
- ply_event_loop_exit (loop, 0);
+ ply_boot_splash_hide (state->splash);
+ ply_event_loop_exit (state->loop, 0);
}
int
main (int argc,
char **argv)
{
- ply_event_loop_t *loop;
- ply_boot_splash_t *splash;
- ply_window_t *window;
- ply_buffer_t *buffer;
int exit_code;
+ test_state_t state;
const char *module_name;
exit_code = 0;
- loop = ply_event_loop_new ();
+ state.loop = ply_event_loop_new ();
if (argc > 1)
module_name = argv[1];
else
module_name = "../splash-plugins/fedora-fade-in/.libs/fedora-fade-in.so";
- window = ply_window_new (ttyname (0));
+ state.window = ply_window_new (ttyname (0));
- if (!ply_window_open (window))
+ if (!ply_window_open (state.window))
{
perror ("could not open terminal");
return errno;
}
- ply_window_attach_to_event_loop (window, loop);
- ply_window_set_escape_handler (window, (ply_window_escape_handler_t)on_quit, loop);
+ ply_window_attach_to_event_loop (state.window, state.loop);
+ ply_window_set_escape_handler (state.window,
+ (ply_window_escape_handler_t)on_quit, &state);
- buffer = ply_buffer_new ();
- splash = ply_boot_splash_new (module_name, window, buffer);
- ply_boot_splash_attach_to_event_loop (splash, loop);
+ state.buffer = ply_buffer_new ();
+ state.splash = ply_boot_splash_new (module_name, state.window, state.buffer);
+ ply_boot_splash_attach_to_event_loop (state.splash, state.loop);
- if (!ply_boot_splash_show (splash))
+ if (!ply_boot_splash_show (state.splash))
{
perror ("could not show splash screen");
return errno;
}
- ply_event_loop_watch_for_timeout (loop,
+ ply_event_loop_watch_for_timeout (state.loop,
1.0,
(ply_event_loop_timeout_handler_t)
on_timeout,
- splash);
- exit_code = ply_event_loop_run (loop);
- ply_boot_splash_free (splash);
- ply_buffer_free (buffer);
+ state.splash);
+ exit_code = ply_event_loop_run (state.loop);
+ ply_boot_splash_free (state.splash);
+ ply_buffer_free (state.buffer);
return exit_code;
}