Hi again,
attached a new version of the "softlock" patch which applies against
current cvs.
Maybe somebody find it useful too.
Bye,
Thomas
Am Samstag, den 17.03.2007, 13:43 +0100 schrieb Stark, Thomas:
> Hi,
>
> attached a little patch which delays the password input after the
> screensaver timeout locks your screen. I found it helpful when I didn't
> create any input event awhile and the timed out screensaver force me to
> enter my password while sitting in front of the computer.
>
> The patch only applies correctly after applying the "desklock config
> dialog fix" I send before.
>
> Bye,
> Thomas
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys-and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________ enlightenment-devel mailing
> list enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
--
Stark, Thomas <[EMAIL PROTECTED]>
diff -Nur cvs/e17/apps/e/src/bin/e_config.c build/e17/apps/e/src/bin/e_config.c
--- cvs/e17/apps/e/src/bin/e_config.c 2007-04-15 12:12:40.000000000 +0200
+++ build/e17/apps/e/src/bin/e_config.c 2007-04-21 14:18:25.000000000 +0200
@@ -490,6 +490,7 @@
E_CONFIG_VAL(D, T, desklock_autolock_screensaver, INT);
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_softlock_timeout, DOUBLE);
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, display_res_restore, INT);
@@ -1386,6 +1387,10 @@
e_config->border_fix_on_shelf_toggle = 0;
IFCFGEND;
+ IFCFG(0x0117);
+ e_config->desklock_softlock_timeout = 0;
+ IFCFGEND;
+
e_config->config_version = E_CONFIG_FILE_VERSION;
#if 0 /* example of new config */
@@ -1474,6 +1479,7 @@
E_CONFIG_LIMIT(e_config->desklock_autolock_screensaver, 0, 1);
E_CONFIG_LIMIT(e_config->desklock_autolock_idle, 0, 1);
E_CONFIG_LIMIT(e_config->desklock_autolock_idle_timeout, 1.0, 5400.0);
+ E_CONFIG_LIMIT(e_config->desklock_softlock_timeout, 0, 60);
E_CONFIG_LIMIT(e_config->desklock_use_custom_desklock, 0, 1);
E_CONFIG_LIMIT(e_config->display_res_restore, 0, 1);
E_CONFIG_LIMIT(e_config->display_res_width, 1, 8192);
diff -Nur cvs/e17/apps/e/src/bin/e_config.h build/e17/apps/e/src/bin/e_config.h
--- cvs/e17/apps/e/src/bin/e_config.h 2007-04-15 12:12:40.000000000 +0200
+++ build/e17/apps/e/src/bin/e_config.h 2007-04-21 14:18:25.000000000 +0200
@@ -54,7 +54,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 0x0116
+#define E_CONFIG_FILE_GENERATION 0x0117
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION)
#define E_EVAS_ENGINE_DEFAULT 0
@@ -233,6 +233,7 @@
int desklock_autolock_screensaver; // GUI
int desklock_autolock_idle; // GUI
double desklock_autolock_idle_timeout; // GUI
+ double desklock_softlock_timeout; // GUI
int desklock_use_custom_desklock; // GUI
const char *desklock_custom_desklock_cmd; // GUI
diff -Nur cvs/e17/apps/e/src/bin/e_desklock.c build/e17/apps/e/src/bin/e_desklock.c
--- cvs/e17/apps/e/src/bin/e_desklock.c 2007-04-21 14:16:25.000000000 +0200
+++ build/e17/apps/e/src/bin/e_desklock.c 2007-04-21 14:18:25.000000000 +0200
@@ -60,7 +60,9 @@
static Ecore_Exe *_e_custom_desklock_exe = NULL;
static Ecore_Event_Handler *_e_custom_desklock_exe_handler = NULL;
static Ecore_Timer *_e_desklock_idle_timer = NULL;
+static Ecore_Timer *_e_desklock_softlock_timer = NULL;
static int _e_desklock_user_idle = 0;
+static int _e_desklock_softlock_enabled = 0;
/***********************************************************************/
@@ -71,6 +73,7 @@
static int _e_desklock_cb_mouse_move(void *data, int type, void *event);
static int _e_desklock_cb_custom_desklock_exit(void *data, int type, void *event);
static int _e_desklock_cb_idle_timer(void *data);
+static int _e_desklock_cb_softlock_timer(void *data);
static void _e_desklock_passwd_update();
static void _e_desklock_backspace();
@@ -104,6 +107,17 @@
EAPI int
e_desklock_shutdown(void)
{
+ if (_e_desklock_idle_timer)
+ {
+ ecore_timer_del(_e_desklock_idle_timer);
+ _e_desklock_idle_timer = NULL;
+ }
+ if (_e_desklock_softlock_timer)
+ {
+ ecore_timer_del(_e_desklock_softlock_timer);
+ _e_desklock_softlock_timer = NULL;
+ }
+
e_desklock_hide();
if (e_config->desklock_background)
e_filereg_deregister(e_config->desklock_background);
@@ -112,6 +126,26 @@
}
EAPI int
+e_desklock_softlock_show(void)
+{
+ if (_e_desklock_softlock_timer)
+ {
+ ecore_timer_del(_e_desklock_softlock_timer);
+ _e_desklock_softlock_timer = NULL;
+ }
+
+ if (e_config->desklock_softlock_timeout > 0)
+ {
+ _e_desklock_softlock_timer = ecore_timer_add(e_config->desklock_softlock_timeout, _e_desklock_cb_softlock_timer, NULL);
+ _e_desklock_softlock_enabled = 1;
+ }
+ else
+ _e_desklock_softlock_enabled = 0;
+
+ return e_desklock_show();
+}
+
+EAPI int
e_desklock_show(void)
{
Evas_List *managers, *l, *l2, *l3;
@@ -353,6 +387,8 @@
{
E_Desklock_Popup_Data *edp;
+ _e_desklock_softlock_enabled = 0;
+
if ((!edd) && (!_e_custom_desklock_exe)) return;
if (e_config->desklock_use_custom_desklock)
@@ -403,6 +439,17 @@
ev = event;
if (ev->win != edd->elock_wnd || edd->state == E_DESKLOCK_STATE_CHECKING) return 1;
+ if (_e_desklock_softlock_enabled)
+ {
+ if (_e_desklock_softlock_timer)
+ {
+ ecore_timer_del(_e_desklock_softlock_timer);
+ _e_desklock_softlock_timer = NULL;
+ }
+ e_desklock_hide();
+ return 1;
+ }
+
if (!strcmp(ev->keysymbol, "Escape"))
;
else if (!strcmp(ev->keysymbol, "KP_Enter"))
@@ -863,3 +910,11 @@
/* Make sure our timer persists. */
return 1;
}
+
+static int
+_e_desklock_cb_softlock_timer(void *data)
+{
+ _e_desklock_softlock_enabled = 0;
+
+ return 1;
+}
diff -Nur cvs/e17/apps/e/src/bin/e_desklock.h build/e17/apps/e/src/bin/e_desklock.h
--- cvs/e17/apps/e/src/bin/e_desklock.h 2006-04-18 05:14:29.000000000 +0200
+++ build/e17/apps/e/src/bin/e_desklock.h 2007-04-21 14:18:25.000000000 +0200
@@ -7,6 +7,7 @@
EAPI int e_desklock_shutdown(void);
EAPI int e_desklock_show(void);
+EAPI int e_desklock_softlock_show(void);
EAPI void e_desklock_hide(void);
#endif
diff -Nur cvs/e17/apps/e/src/bin/e_int_config_desklock.c build/e17/apps/e/src/bin/e_int_config_desklock.c
--- cvs/e17/apps/e/src/bin/e_int_config_desklock.c 2007-04-01 18:34:23.000000000 +0200
+++ build/e17/apps/e/src/bin/e_int_config_desklock.c 2007-04-21 14:18:25.000000000 +0200
@@ -45,6 +45,7 @@
char *bg;
int custom_lock;
char *custom_lock_cmd;
+ double softlock_time;
int login_zone;
int zone;
};
@@ -104,6 +105,7 @@
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->softlock_time = e_config->desklock_softlock_timeout;
if (e_config->desklock_login_box_zone >= 0)
{
cfdata->login_zone = 0;
@@ -156,6 +158,12 @@
ow = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"), 1.0, 90.0, 1.0, 0,
&(cfdata->idle_time), NULL, 100);
e_widget_framelist_object_append(of, ow);
+ ow = e_widget_label_add(evas, _("Prompt for password when time exceeded"));
+ e_widget_disabled_set(ow, !cfdata->use_xscreensaver);
+ e_widget_framelist_object_append(of, ow);
+ ow = e_widget_slider_add(evas, 1, 0, _("%1.0f seconds"), 0.0, 60.0, 1.0, 0,
+ &(cfdata->softlock_time), NULL, 100);
+ e_widget_framelist_object_append(of, ow);
e_widget_list_object_append(o, of, 1, 1, 0.5);
return o;
}
@@ -166,6 +174,7 @@
e_config->desklock_autolock_idle = cfdata->auto_lock;
e_config->desklock_autolock_screensaver = cfdata->screensaver_lock;
e_config->desklock_autolock_idle_timeout = cfdata->idle_time * 60;
+ e_config->desklock_softlock_timeout = cfdata->softlock_time;
e_config_save_queue();
return 1;
}
@@ -342,6 +351,7 @@
e_config->desklock_autolock_idle = cfdata->auto_lock;
e_config->desklock_autolock_screensaver = cfdata->screensaver_lock;
e_config->desklock_autolock_idle_timeout = cfdata->idle_time * 60;
+ e_config->desklock_softlock_timeout = cfdata->softlock_time;
if (cfdata->bg)
{
diff -Nur cvs/e17/apps/e/src/bin/e_manager.c build/e17/apps/e/src/bin/e_manager.c
--- cvs/e17/apps/e/src/bin/e_manager.c 2007-04-06 20:36:45.000000000 +0200
+++ build/e17/apps/e/src/bin/e_manager.c 2007-04-21 14:18:25.000000000 +0200
@@ -752,7 +752,7 @@
if (e->on)
{
if (e_config->desklock_autolock_screensaver)
- e_desklock_show();
+ e_desklock_softlock_show();
}
return 1;
}
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel