Send plymouth mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.freedesktop.org/mailman/listinfo/plymouth
or, via email, send a message with subject or body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of plymouth digest..."


Today's Topics:

   1. [PATCH 19/20] [daemon] add "has active vt?" request
      (Scott James Remnant)
   2. [PATCH 20/20] [client] add has active vt? request
      (Scott James Remnant)
   3. [PATCH] [main] check for deactivated before no-splash
      (Scott James Remnant)
   4. Oops, missed one (Scott James Remnant)
   5. [PATCH 1/5] [main] deactivate renderer before hiding
      (Scott James Remnant)
   6. [PATCH 2/5] [terminal] keep track of terminal raw/cooked
      state (Scott James Remnant)
   7. [PATCH 4/5] [main] restore initial vt when quitting
      (Scott James Remnant)
   8. [PATCH 3/5] [terminal] keep track of initial vt and allow to
      restore   it (Scott James Remnant)


----------------------------------------------------------------------

Message: 1
Date: Thu, 18 Mar 2010 21:05:32 +0000
From: Scott James Remnant <[email protected]>
Subject: [PATCH 19/20] [daemon] add "has active vt?" request
To: [email protected]
Message-ID:
        
<1070b3567064c8a09a2b671384d0fc32569d0a08.1268946935.git.sc...@ubuntu.com>
        

One problem with the current deactivate/quit transition into X is that
the display manager will, if Plymouth was running, re-use the currently
active VT.

That only works if Plymouth was actually displaying a splash screen on
that VT.  If --show-splash hasn't been called yet because we booted too
fast, we'll be on the wrong VT.

Add a request to ask whether the Plymouth VT is active; I've done it
this way so the answer defaults to "yes" for Fedora who use VT1.

The pseudo-code for transition is thus:

  if plymouth is running (ping):
    plymouth deactivate
    if plymouth has active vt:
      start X on current VT with -nr
      if X starts ok:
        plymouth quit --retain-splash
      else if X fails:
        plymouth quit
    else if plymouth doesn't have active vt:
      plymouth quit
      start X as normal
  else if plymouth isn't running:
    start X as normal
---
 src/main.c              |   10 ++++++++++
 src/ply-boot-protocol.h |    1 +
 src/ply-boot-server.c   |   32 +++++++++++++++++++++++++++++++-
 src/ply-boot-server.h   |    3 +++
 4 files changed, 45 insertions(+), 1 deletions(-)

diff --git a/src/main.c b/src/main.c
index 378bdaa..a995edb 100644
--- a/src/main.c
+++ b/src/main.c
@@ -890,6 +890,15 @@ on_quit (state_t       *state,
     quit_program (state);
 }
 
+static bool
+on_has_active_vt (state_t *state)
+{
+  if (state->terminal != NULL)
+    return ply_terminal_is_active (state->terminal);
+  else
+    return false;
+}
+
 static ply_boot_server_t *
 start_boot_server (state_t *state)
 {
@@ -911,6 +920,7 @@ start_boot_server (state_t *state)
                                 (ply_boot_server_deactivate_handler_t) 
on_deactivate,
                                 (ply_boot_server_reactivate_handler_t) 
on_reactivate,
                                 (ply_boot_server_quit_handler_t) on_quit,
+                                (ply_boot_server_has_active_vt_handler_t) 
on_has_active_vt,
                                 state);
 
   if (!ply_boot_server_listen (server))
diff --git a/src/ply-boot-protocol.h b/src/ply-boot-protocol.h
index 594c25c..aeaa3d0 100644
--- a/src/ply-boot-protocol.h
+++ b/src/ply-boot-protocol.h
@@ -40,6 +40,7 @@
 #define PLY_BOOT_PROTOCOL_REQUEST_TYPE_SHOW_SPLASH "$"
 #define PLY_BOOT_PROTOCOL_REQUEST_TYPE_HIDE_SPLASH "H"
 #define PLY_BOOT_PROTOCOL_REQUEST_TYPE_NEWROOT "R"
+#define PLY_BOOT_PROTOCOL_REQUEST_TYPE_HAS_ACTIVE_VT "V"
 #define PLY_BOOT_PROTOCOL_REQUEST_TYPE_ERROR "!"
 
 #define PLY_BOOT_PROTOCOL_RESPONSE_TYPE_ACK "\x6"
diff --git a/src/ply-boot-server.c b/src/ply-boot-server.c
index bd24836..42c10f7 100644
--- a/src/ply-boot-server.c
+++ b/src/ply-boot-server.c
@@ -68,6 +68,7 @@ struct _ply_boot_server
   ply_boot_server_deactivate_handler_t deactivate_handler;
   ply_boot_server_reactivate_handler_t reactivate_handler;
   ply_boot_server_quit_handler_t quit_handler;
+  ply_boot_server_has_active_vt_handler_t has_active_vt_handler;
   void *user_data;
 
   uint32_t is_listening : 1;
@@ -89,7 +90,8 @@ ply_boot_server_new (ply_boot_server_update_handler_t  
update_handler,
                      ply_boot_server_error_handler_t error_handler,
                      ply_boot_server_deactivate_handler_t deactivate_handler,
                      ply_boot_server_reactivate_handler_t reactivate_handler,
-                     ply_boot_server_quit_handler_t    quit_handler,
+                     ply_boot_server_quit_handler_t quit_handler,
+                     ply_boot_server_has_active_vt_handler_t 
has_active_vt_handler,
                      void                             *user_data)
 {
   ply_boot_server_t *server;
@@ -115,6 +117,7 @@ ply_boot_server_new (ply_boot_server_update_handler_t  
update_handler,
   server->deactivate_handler = deactivate_handler;
   server->reactivate_handler = reactivate_handler;
   server->quit_handler = quit_handler;
+  server->has_active_vt_handler = has_active_vt_handler;
   server->user_data = user_data;
 
   return server;
@@ -582,6 +585,25 @@ ply_boot_connection_on_request (ply_boot_connection_t 
*connection)
       if (server->newroot_handler != NULL)
         server->newroot_handler(server->user_data, argument, server);
     }
+  else if (strcmp (command, PLY_BOOT_PROTOCOL_REQUEST_TYPE_HAS_ACTIVE_VT) == 0)
+    {
+      bool answer = false;
+
+      ply_trace ("got has_active vt? request");
+      if (server->has_active_vt_handler != NULL)
+        answer = server->has_active_vt_handler(server->user_data, server);
+
+      if (!answer)
+        {
+          if (!ply_write (connection->fd,
+                          PLY_BOOT_PROTOCOL_RESPONSE_TYPE_NAK,
+                          strlen (PLY_BOOT_PROTOCOL_RESPONSE_TYPE_NAK)))
+            ply_error ("could not write bytes: %m");
+
+          free(command);
+          return;
+        }
+    }
   else if (strcmp (command, PLY_BOOT_PROTOCOL_REQUEST_TYPE_PING) != 0)
     {
       ply_error ("received unknown command '%s' from client", command);
@@ -803,6 +825,13 @@ on_ignore_keystroke (ply_event_loop_t *loop)
   return;
 }
 
+static bool
+on_has_active_vt (ply_event_loop_t *loop)
+{
+  printf ("got has_active vt? request\n");
+  return true;
+}
+
 int
 main (int    argc,
       char **argv)
@@ -831,6 +860,7 @@ main (int    argc,
                                 (ply_boot_server_deactivate_handler_t) 
on_deactivate,
                                 (ply_boot_server_reactivate_handler_t) 
on_reactivate,
                                 (ply_boot_server_quit_handler_t) on_quit,
+                                (ply_boot_server_has_active_vt_handler_t) 
on_has_active_vt,
                                 loop);
 
   if (!ply_boot_server_listen (server))
diff --git a/src/ply-boot-server.h b/src/ply-boot-server.h
index 7ea8fc6..4c229f4 100644
--- a/src/ply-boot-server.h
+++ b/src/ply-boot-server.h
@@ -89,6 +89,8 @@ typedef void (* ply_boot_server_quit_handler_t) (void         
     *user_data,
                                                  bool               
retain_splash,
                                                  ply_trigger_t     
*quit_trigger,
                                                  ply_boot_server_t *server);
+typedef bool (* ply_boot_server_has_active_vt_handler_t) (void              
*user_data,
+                                                          ply_boot_server_t 
*server);
 
 #ifndef PLY_HIDE_FUNCTION_DECLARATIONS
 ply_boot_server_t *ply_boot_server_new (ply_boot_server_update_handler_t 
update_handler,
@@ -107,6 +109,7 @@ ply_boot_server_t *ply_boot_server_new 
(ply_boot_server_update_handler_t update_
                                         ply_boot_server_deactivate_handler_t 
deactivate_handler,
                                         ply_boot_server_reactivate_handler_t 
reactivate_handler,
                                         ply_boot_server_quit_handler_t 
quit_handler,
+                                        
ply_boot_server_has_active_vt_handler_t has_active_vt_handler,
                                         void                        
*user_data);
 
 void ply_boot_server_free (ply_boot_server_t *server);
-- 
1.7.0



------------------------------

Message: 2
Date: Thu, 18 Mar 2010 21:10:52 +0000
From: Scott James Remnant <[email protected]>
Subject: [PATCH 20/20] [client] add has active vt? request
To: [email protected]
Message-ID:
        
<60c657613a659766f33efd9e19c5ce8e0a09576e.1268946935.git.sc...@ubuntu.com>
        

This asks the daemon whether it has an active VT, used for a smooth
transition into X.

I've implemented this to look like ping.
---
 src/client/ply-boot-client.c |   10 ++++++++++
 src/client/ply-boot-client.h |    4 ++++
 src/client/plymouth.c        |   15 ++++++++++++++-
 3 files changed, 28 insertions(+), 1 deletions(-)

diff --git a/src/client/ply-boot-client.c b/src/client/ply-boot-client.c
index 58c5e44..c3373f0 100644
--- a/src/client/ply-boot-client.c
+++ b/src/client/ply-boot-client.c
@@ -723,6 +723,16 @@ ply_boot_client_tell_daemon_to_progress_unpause 
(ply_boot_client_t
 }
 
 void
+ply_boot_client_ask_daemon_has_active_vt (ply_boot_client_t                  
*client,
+                                          ply_boot_client_response_handler_t  
handler,
+                                          ply_boot_client_response_handler_t  
failed_handler,
+                                          void                               
*user_data)
+{
+  ply_boot_client_queue_request (client, 
PLY_BOOT_PROTOCOL_REQUEST_TYPE_HAS_ACTIVE_VT,
+                                 NULL, handler, failed_handler, user_data);
+}
+
+void
 ply_boot_client_tell_daemon_about_error (ply_boot_client_t                  
*client,
                                          ply_boot_client_response_handler_t  
handler,
                                          ply_boot_client_response_handler_t  
failed_handler,
diff --git a/src/client/ply-boot-client.h b/src/client/ply-boot-client.h
index 046b6f7..1608876 100644
--- a/src/client/ply-boot-client.h
+++ b/src/client/ply-boot-client.h
@@ -125,6 +125,10 @@ void ply_boot_client_tell_daemon_to_progress_unpause 
(ply_boot_client_t
                                                       
ply_boot_client_response_handler_t  handler,
                                                       
ply_boot_client_response_handler_t  failed_handler,
                                                       void                     
          *user_data);
+void ply_boot_client_ask_daemon_has_active_vt (ply_boot_client_t               
   *client,
+                                               
ply_boot_client_response_handler_t  handler,
+                                               
ply_boot_client_response_handler_t  failed_handler,
+                                               void                            
   *user_data);
 void ply_boot_client_disconnect (ply_boot_client_t *client);
 void ply_boot_client_attach_to_event_loop (ply_boot_client_t *client,
                                            ply_event_loop_t  *loop);
diff --git a/src/client/plymouth.c b/src/client/plymouth.c
index 5dffba8..544c557 100644
--- a/src/client/plymouth.c
+++ b/src/client/plymouth.c
@@ -740,7 +740,7 @@ main (int    argc,
       char **argv)
 {
   state_t state = { 0 };
-  bool should_help, should_quit, should_ping, should_sysinit, 
should_ask_for_password, should_show_splash, should_hide_splash, should_wait, 
should_be_verbose, report_error, should_get_plugin_path;
+  bool should_help, should_quit, should_ping, should_have_active_vt, 
should_sysinit, should_ask_for_password, should_show_splash, 
should_hide_splash, should_wait, should_be_verbose, report_error, 
should_get_plugin_path;
   bool is_connected;
   char *status, *chroot_dir, *ignore_keystroke;
   int exit_code;
@@ -760,6 +760,7 @@ main (int    argc,
                                   "newroot", "Tell boot daemon that new root 
filesystem is mounted", PLY_COMMAND_OPTION_TYPE_STRING,
                                   "quit", "Tell boot daemon to quit", 
PLY_COMMAND_OPTION_TYPE_FLAG,
                                   "ping", "Check of boot daemon is running", 
PLY_COMMAND_OPTION_TYPE_FLAG,
+                                  "has-active-vt", "Check if boot daemon has 
an active vt", PLY_COMMAND_OPTION_TYPE_FLAG,
                                   "sysinit", "Tell boot daemon root filesystem 
is mounted read-write", PLY_COMMAND_OPTION_TYPE_FLAG,
                                   "show-splash", "Show splash screen", 
PLY_COMMAND_OPTION_TYPE_FLAG,
                                   "hide-splash", "Hide splash screen", 
PLY_COMMAND_OPTION_TYPE_FLAG,
@@ -868,6 +869,7 @@ main (int    argc,
                                   "newroot", &chroot_dir,
                                   "quit", &should_quit,
                                   "ping", &should_ping,
+                                  "has-active-vt", &should_has_active_vt,
                                   "sysinit", &should_sysinit,
                                   "show-splash", &should_show_splash,
                                   "hide-splash", &should_hide_splash,
@@ -921,6 +923,11 @@ main (int    argc,
           ply_trace ("ping failed");
           return 1;
         }
+      if (should_has_active_vt)
+        {
+          ply_trace ("has active vt? failed");
+          return 1;
+        }
     }
 
   ply_boot_client_attach_to_event_loop (state.client, state.loop);
@@ -950,6 +957,12 @@ main (int    argc,
                                  on_success, 
                                  (ply_boot_client_response_handler_t)
                                  on_failure, &state);
+  else if (should_has_active_vt)
+    ply_boot_client_ask_daemon_has_active_vt (state.client,
+                                              
(ply_boot_client_response_handler_t)
+                                              on_success, 
+                                              
(ply_boot_client_response_handler_t)
+                                              on_failure, &state);
   else if (status != NULL)
     ply_boot_client_update_daemon (state.client, status,
                                    (ply_boot_client_response_handler_t)
-- 
1.7.0



------------------------------

Message: 3
Date: Thu, 18 Mar 2010 21:24:31 +0000
From: Scott James Remnant <[email protected]>
Subject: [PATCH] [main] check for deactivated before no-splash
To: [email protected]
Message-ID:
        
<df96ff239feebdee8a0d436266c49366293ba10d.1268947528.git.sc...@ubuntu.com>
        

Since deactivated doesn't mean no boot splash anymore, we have to
check for the "plymouth quit" while deactivated case first.
---
 src/main.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/main.c b/src/main.c
index a995edb..0577d57 100644
--- a/src/main.c
+++ b/src/main.c
@@ -872,20 +872,20 @@ on_quit (state_t       *state,
     ply_terminal_session_close_log (state->session);
   ply_trace ("unloading splash");
 
-  if (state->boot_splash != NULL)
-    {
-      ply_boot_splash_become_idle (state->boot_splash,
-                                   (ply_boot_splash_on_idle_handler_t)
-                                   on_boot_splash_idle,
-                                   state);
-    }
-  else if (state->is_inactive && !retain_splash)
+  if (state->is_inactive && !retain_splash)
     {
       /* We've been deactivated and X failed to start
        */
       dump_details_and_quit_splash (state);
       quit_program (state);
     }
+  else if (state->boot_splash != NULL)
+    {
+      ply_boot_splash_become_idle (state->boot_splash,
+                                   (ply_boot_splash_on_idle_handler_t)
+                                   on_boot_splash_idle,
+                                   state);
+    }
   else
     quit_program (state);
 }
-- 
1.7.0



------------------------------

Message: 4
Date: Thu, 18 Mar 2010 21:25:28 +0000
From: Scott James Remnant <[email protected]>
Subject: Oops, missed one
To: [email protected]
Message-ID: <[email protected]>

This patch should be mentally inserted into the previous list
between 11 and 12.  Silly rebase.

Scott James Remnant (1):
  [main] check for deactivated before no-splash

 src/main.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)



------------------------------

Message: 5
Date: Thu, 18 Mar 2010 21:28:52 +0000
From: Scott James Remnant <[email protected]>
Subject: [PATCH 1/5] [main] deactivate renderer before hiding
To: [email protected]
Message-ID: <[email protected]>

If we don't deactivate the renderer before hiding the splash, the
drm renderer may scan out the buffer contents to the fbcon buffer;
since we only hide the splash when dumping details or when
--retain-splash is *not* given to quit, this is exactly the
opposite of what we want.

The effect of not doing this is partial splash contents behind the
details in cases of error, or when using quit.  This doesn't affect
plymouth quit --retain-splash.
---
 src/main.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/src/main.c b/src/main.c
index 0577d57..57a73d0 100644
--- a/src/main.c
+++ b/src/main.c
@@ -659,6 +659,8 @@ dump_details_and_quit_splash (state_t *state)
   state->showing_details = false;
   on_escape_pressed (state);
 
+  if (state->renderer != NULL)
+    ply_renderer_deactivate (state->renderer);
   if (state->boot_splash != NULL)
     ply_boot_splash_hide (state->boot_splash);
 
@@ -773,6 +775,8 @@ on_boot_splash_idle (state_t *state)
       if (!state->should_retain_splash)
         {
           ply_trace ("hiding splash");
+          if (state->renderer != NULL)
+            ply_renderer_deactivate (state->renderer);
           if (state->boot_splash != NULL)
             ply_boot_splash_hide (state->boot_splash);
         }
-- 
1.7.0



------------------------------

Message: 6
Date: Thu, 18 Mar 2010 21:32:29 +0000
From: Scott James Remnant <[email protected]>
Subject: [PATCH 2/5] [terminal] keep track of terminal raw/cooked
        state
To: [email protected]
Message-ID: <[email protected]>

Instead of setting the terminal to unbuffered (raw) mode on every
write, keep track of whether it's unbuffered or not at the points
we open and close the terminal.

Deactivate already takes care to set back into buffered mode;
otherwise we can end up resetting the terminal mode under X causing
Enter to send X SIGQUIT.

(Even with the improved terminal setting code)
---
 src/libply-splash-core/ply-terminal.c |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/libply-splash-core/ply-terminal.c 
b/src/libply-splash-core/ply-terminal.c
index 0f70bf7..3487387 100644
--- a/src/libply-splash-core/ply-terminal.c
+++ b/src/libply-splash-core/ply-terminal.c
@@ -81,6 +81,7 @@ struct _ply_terminal
   uint32_t supports_text_color : 1;
   uint32_t is_open : 1;
   uint32_t is_active : 1;
+  uint32_t is_unbuffered : 1;
   uint32_t is_watching_for_vt_changes : 1;
   uint32_t should_ignore_mode_changes : 1;
 };
@@ -182,6 +183,8 @@ ply_terminal_set_unbuffered_input (ply_terminal_t *terminal)
   if (tcsetattr (terminal->fd, TCSAFLUSH, &term_attributes) != 0)
     return false;
 
+  terminal->is_unbuffered = true;
+
   return true;
 }
 
@@ -190,13 +193,20 @@ ply_terminal_set_buffered_input (ply_terminal_t *terminal)
 {
   struct termios term_attributes;
 
+  if (!terminal->is_unbuffered)
+    return true;
+
   tcgetattr (terminal->fd, &term_attributes);
 
   /* If someone already messed with the terminal settings,
    * and they seem good enough, bail
    */
   if (term_attributes.c_lflag & ICANON)
-    return true;
+    {
+      terminal->is_unbuffered = false;
+
+      return true;
+    }
 
   /* If we don't know the original term attributes, or they were originally 
sucky,
    * then invent some that are probably good enough.
@@ -210,12 +220,16 @@ ply_terminal_set_buffered_input (ply_terminal_t *terminal)
       if (tcsetattr (terminal->fd, TCSAFLUSH, &term_attributes) != 0)
         return false;
 
+      terminal->is_unbuffered = false;
+
       return true;
     }
 
   if (tcsetattr (terminal->fd, TCSAFLUSH, &terminal->original_term_attributes) 
!= 0)
     return false;
 
+  terminal->is_unbuffered = false;
+
   return true;
 }
 
@@ -230,8 +244,6 @@ ply_terminal_write (ply_terminal_t *terminal,
   assert (terminal != NULL);
   assert (format != NULL);
 
-  ply_terminal_set_unbuffered_input (terminal);
-
   string = NULL;
   va_start (args, format);
   vasprintf (&string, format, args);
-- 
1.7.0



------------------------------

Message: 7
Date: Thu, 18 Mar 2010 21:36:51 +0000
From: Scott James Remnant <[email protected]>
Subject: [PATCH 4/5] [main] restore initial vt when quitting
To: [email protected]
Message-ID: <[email protected]>

Since we use plymouth on servers, and use a VT other than TTY1, we
need to switch back to VT1 at the end of the boot sequence.  This
adds that VT switch into the "plymouth quit when not deactivated"
path.
---
 src/main.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/main.c b/src/main.c
index 57a73d0..ce210a4 100644
--- a/src/main.c
+++ b/src/main.c
@@ -639,6 +639,9 @@ quit_splash (state_t *state)
 
   if (state->terminal != NULL)
     {
+      if (!state->should_retain_splash)
+        ply_terminal_restore_vt (state->terminal);
+
       ply_terminal_close (state->terminal);
       ply_terminal_free (state->terminal);
       state->terminal = NULL;
-- 
1.7.0



------------------------------

Message: 8
Date: Thu, 18 Mar 2010 21:34:29 +0000
From: Scott James Remnant <[email protected]>
Subject: [PATCH 3/5] [terminal] keep track of initial vt and allow to
        restore it
To: [email protected]
Message-ID: <[email protected]>

When the terminal is first created, we already look up the current
VT to see whether the terminal is the active VT.  Save this VT
and add a function to allow us to restore to this VT later if we
choose.
---
 src/libply-splash-core/ply-terminal.c |   27 +++++++++++++++++++++++++++
 src/libply-splash-core/ply-terminal.h |    1 +
 2 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/src/libply-splash-core/ply-terminal.c 
b/src/libply-splash-core/ply-terminal.c
index 3487387..564a6bc 100644
--- a/src/libply-splash-core/ply-terminal.c
+++ b/src/libply-splash-core/ply-terminal.c
@@ -65,6 +65,7 @@ struct _ply_terminal
   char *name;
   int   fd;
   int   vt_number;
+  int   initial_vt;
 
   ply_list_t *vt_change_closures;
   ply_fd_watch_t *fd_watch;
@@ -107,6 +108,7 @@ ply_terminal_new (const char *device_name)
 
   terminal->fd = -1;
   terminal->vt_number = -1;
+  terminal->initial_vt = -1;
 
   return terminal;
 }
@@ -318,6 +320,9 @@ get_active_vt (ply_terminal_t *terminal)
   if (ioctl (terminal->fd, VT_GETSTATE, &vt_state) < 0)
     return -1;
 
+  if (terminal->initial_vt < 0)
+    terminal->initial_vt = vt_state.v_active;
+
   return vt_state.v_active;
 }
 
@@ -719,6 +724,28 @@ ply_terminal_activate_vt (ply_terminal_t *terminal)
   return true;
 }
 
+bool
+ply_terminal_restore_vt (ply_terminal_t *terminal)
+{
+  assert (terminal != NULL);
+
+  if (!ply_terminal_is_vt (terminal))
+    return false;
+
+  if (terminal->initial_vt < 0)
+    return false;
+
+  /* Otherwise we'd close and free the terminal before handling the
+   * "leaving the VT" signal.
+   */
+  ply_terminal_stop_watching_for_vt_changes (terminal);
+
+  if (!set_active_vt (terminal, terminal->initial_vt))
+    return false;
+
+  return true;
+}
+
 void
 ply_terminal_watch_for_active_vt_change (ply_terminal_t *terminal,
                                          
ply_terminal_active_vt_changed_handler_t active_vt_changed_handler,
diff --git a/src/libply-splash-core/ply-terminal.h 
b/src/libply-splash-core/ply-terminal.h
index 5e4f1fc..b22fe9b 100644
--- a/src/libply-splash-core/ply-terminal.h
+++ b/src/libply-splash-core/ply-terminal.h
@@ -92,6 +92,7 @@ void ply_terminal_ignore_mode_changes (ply_terminal_t 
*terminal,
 
 int ply_terminal_get_vt_number (ply_terminal_t *terminal);
 bool ply_terminal_activate_vt (ply_terminal_t *terminal);
+bool ply_terminal_restore_vt (ply_terminal_t *terminal);
 
 void ply_terminal_watch_for_vt_changes (ply_terminal_t *terminal);
 void ply_terminal_stop_watching_for_vt_changes (ply_terminal_t *terminal);
-- 
1.7.0



------------------------------

_______________________________________________
plymouth mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/plymouth


End of plymouth Digest, Vol 17, Issue 15
****************************************

Reply via email to