hello,

here is a patch that adds the ability to lock the screen (via desklock)
when suspending or hibernating using e17 system controls. checkbox in
conf_desklock.

what do you think about it ?

laurent
Index: src/bin/e_config.c
===================================================================
--- src/bin/e_config.c	(revision 43803)
+++ src/bin/e_config.c	(working copy)
@@ -587,6 +587,8 @@
    E_CONFIG_VAL(D, T, desklock_post_screensaver_time, DOUBLE);
    E_CONFIG_VAL(D, T, desklock_autolock_idle, INT);
    E_CONFIG_VAL(D, T, desklock_autolock_idle_timeout, DOUBLE);
+   E_CONFIG_VAL(D, T, desklock_on_suspend, INT);
+   E_CONFIG_VAL(D, T, desklock_on_hibernate, INT);
    E_CONFIG_VAL(D, T, desklock_use_custom_desklock, INT);
    E_CONFIG_VAL(D, T, desklock_custom_desklock_cmd, STR);
    E_CONFIG_VAL(D, T, desklock_ask_presentation, UCHAR);
@@ -941,6 +943,11 @@
         COPYVAL(desk_flip_pan_y_axis_factor);
         IFCFGEND;
 
+	IFCFG(0x0134);
+	COPYVAL(desklock_on_suspend);
+	COPYVAL(desklock_on_hibernate);
+	IFCFGEND;
+
         e_config->config_version = E_CONFIG_FILE_VERSION;   
         _e_config_free(tcfg);
      }
Index: src/bin/e_config.h
===================================================================
--- src/bin/e_config.h	(revision 43803)
+++ src/bin/e_config.h	(working copy)
@@ -35,7 +35,7 @@
 /* increment this whenever a new set of config values are added but the users
  * config doesn't need to be wiped - simply new values need to be put in
  */
-#define E_CONFIG_FILE_GENERATION 0x0133
+#define E_CONFIG_FILE_GENERATION 0x0134
 #define E_CONFIG_FILE_VERSION    ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION)
 
 #define E_EVAS_ENGINE_DEFAULT         0
@@ -221,6 +221,8 @@
    double      desklock_post_screensaver_time; // GUI
    int         desklock_autolock_idle; // GUI
    double      desklock_autolock_idle_timeout; // GUI
+   int         desklock_on_suspend; // GUI
+   int         desklock_on_hibernate; // GUI
    int         desklock_use_custom_desklock; // GUI
    const char *desklock_custom_desklock_cmd; // GUI
    Eina_Bool   desklock_ask_presentation; // GUI
Index: src/bin/e_sys.c
===================================================================
--- src/bin/e_sys.c	(revision 43803)
+++ src/bin/e_sys.c	(working copy)
@@ -591,6 +591,8 @@
 	     if (_e_sys_dialog) e_object_del(E_OBJECT(_e_sys_dialog));
 	     e_obj_dialog_cb_delete_set(od, _e_sys_dialog_cb_delete);
 	     _e_sys_dialog = od;
+	     if (e_config->desklock_on_suspend)
+	       e_desklock_show();
 	     /* FIXME: display suspend status */
 	  }
 	break;
@@ -617,6 +619,8 @@
 	     if (_e_sys_dialog) e_object_del(E_OBJECT(_e_sys_dialog));
 	     _e_sys_dialog = od;
 	     e_obj_dialog_cb_delete_set(od, _e_sys_dialog_cb_delete);
+	     if (e_config->desklock_on_hibernate)
+	       e_desklock_show();
 	     /* FIXME: display hibernate status */
 	  }
 	break;
Index: src/modules/conf_desklock/e_int_config_desklock.c
===================================================================
--- src/modules/conf_desklock/e_int_config_desklock.c	(revision 43803)
+++ src/modules/conf_desklock/e_int_config_desklock.c	(working copy)
@@ -47,6 +47,8 @@
    int screensaver_lock;
    double idle_time;
    double post_screensaver_time;
+   int on_suspend;
+   int on_hibernate;
 
    /* Adv props */
    int bg_method;
@@ -132,6 +134,8 @@
    cfdata->auto_lock = e_config->desklock_autolock_idle;
    cfdata->screensaver_lock = e_config->desklock_autolock_screensaver;
    cfdata->idle_time = e_config->desklock_autolock_idle_timeout / 60;
+   cfdata->on_suspend = e_config->desklock_on_suspend;
+   cfdata->on_hibernate = e_config->desklock_on_hibernate;
    cfdata->post_screensaver_time = e_config->desklock_post_screensaver_time;
    if (e_config->desklock_login_box_zone >= 0)
      {
@@ -227,6 +231,14 @@
    cfdata->gui.basic.auto_lock_slider = ow;
    e_widget_disabled_set(ow, !cfdata->use_xscreensaver);
    e_widget_framelist_object_append(of, ow);
+   ow = e_widget_check_add(evas, _("Lock on suspend"),
+			   &cfdata->on_suspend);
+   e_widget_disabled_set(ow, !cfdata->use_xscreensaver);
+   e_widget_framelist_object_append(of, ow);
+   ow = e_widget_check_add(evas, _("Lock on hibernate"),
+			   &cfdata->on_hibernate);
+   e_widget_disabled_set(ow, !cfdata->use_xscreensaver);
+   e_widget_framelist_object_append(of, ow);
    e_widget_list_object_append(o, of, 1, 1, 0.5);
 
    _basic_auto_lock_cb_changed(cfdata, NULL);
@@ -243,6 +255,8 @@
    e_config->desklock_autolock_screensaver = cfdata->screensaver_lock;
    e_config->desklock_post_screensaver_time = cfdata->post_screensaver_time;
    e_config->desklock_autolock_idle_timeout = cfdata->idle_time * 60;
+   e_config->desklock_on_suspend = cfdata->on_suspend;
+   e_config->desklock_on_hibernate = cfdata->on_hibernate;
    e_config_save_queue();
    return 1;
 }
@@ -255,7 +269,9 @@
       (e_config->desklock_autolock_idle != cfdata->auto_lock) ||
       (e_config->desklock_autolock_screensaver != cfdata->screensaver_lock) ||
       (e_config->desklock_post_screensaver_time != cfdata->post_screensaver_time) ||
-      (e_config->desklock_autolock_idle_timeout != cfdata->idle_time * 60));
+      (e_config->desklock_autolock_idle_timeout != cfdata->idle_time * 60) ||
+      (e_config->desklock_on_suspend != cfdata->on_suspend) ||
+      (e_config->desklock_on_hibernate != cfdata->on_hibernate));
 }
 
 static const char *
@@ -478,6 +494,8 @@
    e_config->desklock_autolock_idle_timeout = cfdata->idle_time * 60;
    e_config->desklock_ask_presentation = cfdata->ask_presentation;
    e_config->desklock_ask_presentation_timeout = cfdata->ask_presentation_timeout;
+   e_config->desklock_on_suspend = cfdata->on_suspend;
+   e_config->desklock_on_hibernate = cfdata->on_hibernate;
 
    if (cfdata->bg)
      {
Index: config/standard/e.src
===================================================================
--- config/standard/e.src	(revision 43803)
+++ config/standard/e.src	(working copy)
@@ -1968,6 +1968,8 @@
   value "desklock_post_screensaver_time" double: 0.0;
   value "desklock_autolock_idle" int: 0;
   value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
+  value "desklock_on_sleep" int: 0;
+  value "desklock_on_hibernate" int: 0;
   value "desklock_use_custom_desklock" int: 0;
   value "desklock_ask_presentation" uchar: 1;
   value "desklock_ask_presentation_timeout" double: 30;
Index: config/netbook/e.src
===================================================================
--- config/netbook/e.src	(revision 43803)
+++ config/netbook/e.src	(working copy)
@@ -1927,6 +1927,8 @@
   value "desklock_post_screensaver_time" double: 0.0;
   value "desklock_autolock_idle" int: 0;
   value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
+  value "desklock_on_sleep" int: 0;
+  value "desklock_on_hibernate" int: 0;
   value "desklock_use_custom_desklock" int: 0;
   value "desklock_ask_presentation" uchar: 1;
   value "desklock_ask_presentation_timeout" double: 30;
Index: config/default/e.src
===================================================================
--- config/default/e.src	(revision 43803)
+++ config/default/e.src	(working copy)
@@ -449,6 +449,8 @@
   value "desklock_post_screensaver_time" double: 0.0;
   value "desklock_autolock_idle" int: 0;
   value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
+  value "desklock_on_sleep" int: 0;
+  value "desklock_on_hibernate" int: 0;
   value "desklock_use_custom_desklock" int: 0;
   value "desklock_ask_presentation" uchar: 1;
   value "desklock_ask_presentation_timeout" double: 30;
Index: config/minimalist/e.src
===================================================================
--- config/minimalist/e.src	(revision 43803)
+++ config/minimalist/e.src	(working copy)
@@ -1863,6 +1863,8 @@
   value "desklock_post_screensaver_time" double: 0.0;
   value "desklock_autolock_idle" int: 0;
   value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
+  value "desklock_on_sleep" int: 0;
+  value "desklock_on_hibernate" int: 0;
   value "desklock_use_custom_desklock" int: 0;
   value "desklock_ask_presentation" uchar: 1;
   value "desklock_ask_presentation_timeout" double: 30;
Index: config/illume/e.src
===================================================================
--- config/illume/e.src	(revision 43803)
+++ config/illume/e.src	(working copy)
@@ -659,6 +659,8 @@
   value "desklock_post_screensaver_time" double: 0.0;
   value "desklock_autolock_idle" int: 0;
   value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
+  value "desklock_on_sleep" int: 0;
+  value "desklock_on_hibernate" int: 0;
   value "desklock_use_custom_desklock" int: 0;
   value "desklock_ask_presentation" uchar: 1;
   value "desklock_ask_presentation_timeout" double: 30;
Index: config/scaleable/e.src
===================================================================
--- config/scaleable/e.src	(revision 43803)
+++ config/scaleable/e.src	(working copy)
@@ -1950,6 +1950,8 @@
   value "desklock_post_screensaver_time" double: 0.0;
   value "desklock_autolock_idle" int: 0;
   value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
+  value "desklock_on_sleep" int: 0;
+  value "desklock_on_hibernate" int: 0;
   value "desklock_use_custom_desklock" int: 0;
   value "desklock_ask_presentation" uchar: 1;
   value "desklock_ask_presentation_timeout" double: 30;
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to