and if for whatever reason e was locked when it restarts... lock again
authorCarsten Haitzler <raster@rasterman.com>
Mon, 30 Apr 2012 12:59:03 +0000 (12:59 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Mon, 30 Apr 2012 12:59:03 +0000 (12:59 +0000)
instantly on restart :)

SVN revision: 70559

src/bin/e_desklock.c
src/bin/e_main.c

index 8d9c0ac..bd486e8 100644 (file)
@@ -113,11 +113,15 @@ e_desklock_init(void)
 EINTERN int
 e_desklock_shutdown(void)
 {
+   Eina_Bool waslocked = EINA_FALSE;
+   
+   if (edd) waslocked = EINA_TRUE;
    if (!x_fatal)
       e_desklock_hide();
    if (e_config->desklock_background)
      e_filereg_deregister(e_config->desklock_background);
-
+   
+   if (waslocked) e_util_env_set("E_DESKLOCK_LOCKED", "locked");
    return 1;
 }
 
@@ -405,6 +409,8 @@ e_desklock_show(void)
    ev = E_NEW(E_Event_Desklock, 1);
    ev->on = 1;
    ecore_event_add(E_EVENT_DESKLOCK, ev, NULL, NULL);
+   
+   e_util_env_set("E_DESKLOCK_LOCKED", "locked");
    return 1;
 }
 
@@ -470,6 +476,7 @@ e_desklock_hide(void)
 
        _e_desklock_autolock_time = 0.0;
      }
+   e_util_env_set("E_DESKLOCK_LOCKED", "freefreefree");
 }
 
 static Eina_Bool
index a506867..e4d357c 100644 (file)
@@ -132,6 +132,7 @@ main(int argc, char **argv)
    Eina_Bool nostartup = EINA_FALSE;
    Eina_Bool safe_mode = EINA_FALSE;
    Eina_Bool after_restart = EINA_FALSE;
+   Eina_Bool waslocked = EINA_FALSE;
    double t = 0.0, tstart = 0.0;
    char *s = NULL, buff[32];
    struct sigaction action;
@@ -451,6 +452,9 @@ main(int argc, char **argv)
    e_util_env_set("E_ICON_THEME", e_config->icon_theme);
    ecore_exe_run_priority_set(e_config->priority);
    locked |= e_config->desklock_start_locked;
+   
+   s = getenv("E_DESKLOCK_LOCKED");
+   if ((s) && (!strcmp(s, "locked"))) waslocked = EINA_TRUE;
 
    TS("E_Scale Init");
    if (!e_scale_init())
@@ -660,6 +664,7 @@ main(int argc, char **argv)
 
    if ((locked) && ((!e_config->show_splash) && (!after_restart)))
      e_desklock_show();
+   else if (waslocked) e_desklock_show();
 
    if (e_config->show_splash)
      e_init_status_set(_("Setup Message Bus"));