Enlightenment CVS committal

Author  : devilhorns
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        Makefile.am e_config.c e_config.h e_configure.c e_desklock.c 
        e_includes.h e_int_config_desklock.c e_ipc_handlers.h 
        e_ipc_handlers_list.h e_main.c e_manager.c 
Added Files:
        e_dpms.c e_dpms.h e_int_config_dpms.c e_int_config_dpms.h 
        e_int_config_screensaver.c e_int_config_screensaver.h 
        e_screensaver.c e_screensaver.h 


Log Message:
Ravenlock's combined dpms/screensaver patches and new config dialogs.

Nice work :)

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/Makefile.am,v
retrieving revision 1.173
retrieving revision 1.174
diff -u -3 -r1.173 -r1.174
--- Makefile.am 10 Feb 2007 17:23:05 -0000      1.173
+++ Makefile.am 13 Feb 2007 16:33:35 -0000      1.174
@@ -138,8 +138,12 @@
 e_int_config_color_classes.h \
 e_int_config_mime.h \
 e_int_config_mime_edit.h \
+e_int_config_screensaver.h \
+e_int_config_dpms.h \
 e_exebuf.h \
 e_desklock.h \
+e_screensaver.h \
+e_dpms.h \
 e_int_config_modules.h \
 e_exehist.h \
 e_color_class.h \
@@ -295,8 +299,12 @@
 e_int_config_color_classes.c \
 e_int_config_mime.c \
 e_int_config_mime_edit.c \
+e_int_config_screensaver.c \
+e_int_config_dpms.c \
 e_exebuf.c \
 e_desklock.c \
+e_screensaver.c \
+e_dpms.c \
 e_int_config_modules.c \
 e_exehist.c \
 e_color_class.c \
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_config.c,v
retrieving revision 1.225
retrieving revision 1.226
diff -u -3 -r1.225 -r1.226
--- e_config.c  7 Jan 2007 23:45:35 -0000       1.225
+++ e_config.c  13 Feb 2007 16:33:35 -0000      1.226
@@ -41,7 +41,6 @@
 static E_Config_DD *_e_config_shelf_edd = NULL;
 static E_Config_DD *_e_config_mime_icon_edd = NULL;
 
-
 /* externally accessible functions */
 EAPI int
 e_config_init(void)
@@ -168,7 +167,7 @@
    E_CONFIG_VAL(D, T, enabled, UCHAR);
 
    _e_config_font_default_edd = E_CONFIG_DD_NEW("E_Font_Default", 
-                                                E_Font_Default);   
+                                               E_Font_Default);
 #undef T
 #undef D
 #define T E_Font_Default
@@ -178,14 +177,15 @@
    E_CONFIG_VAL(D, T, size, INT);
 
    _e_config_font_fallback_edd = E_CONFIG_DD_NEW("E_Font_Fallback", 
-                                                 E_Font_Fallback);   
+                                                 E_Font_Fallback);
 #undef T
 #undef D
 #define T E_Font_Fallback
 #define D _e_config_font_fallback_edd
    E_CONFIG_VAL(D, T, name, STR);
 
-   _e_config_bindings_mouse_edd = E_CONFIG_DD_NEW("E_Config_Binding_Mouse", 
E_Config_Binding_Mouse);
+   _e_config_bindings_mouse_edd = E_CONFIG_DD_NEW("E_Config_Binding_Mouse", 
+                                                 E_Config_Binding_Mouse);
 #undef T
 #undef D
 #define T E_Config_Binding_Mouse
@@ -197,7 +197,8 @@
    E_CONFIG_VAL(D, T, button, UCHAR);
    E_CONFIG_VAL(D, T, any_mod, UCHAR);
 
-   _e_config_bindings_key_edd = E_CONFIG_DD_NEW("E_Config_Binding_Key", 
E_Config_Binding_Key);
+   _e_config_bindings_key_edd = E_CONFIG_DD_NEW("E_Config_Binding_Key", 
+                                               E_Config_Binding_Key);
 #undef T
 #undef D
 #define T E_Config_Binding_Key
@@ -209,7 +210,8 @@
    E_CONFIG_VAL(D, T, params, STR);
    E_CONFIG_VAL(D, T, any_mod, UCHAR);
 
-   _e_config_bindings_signal_edd = E_CONFIG_DD_NEW("E_Config_Binding_Signal", 
E_Config_Binding_Signal);
+   _e_config_bindings_signal_edd = E_CONFIG_DD_NEW("E_Config_Binding_Signal", 
+                                                  E_Config_Binding_Signal);
 #undef T
 #undef D
 #define T E_Config_Binding_Signal
@@ -222,7 +224,8 @@
    E_CONFIG_VAL(D, T, action, STR);
    E_CONFIG_VAL(D, T, params, STR);
 
-   _e_config_bindings_wheel_edd = E_CONFIG_DD_NEW("E_Config_Binding_Wheel", 
E_Config_Binding_Wheel);
+   _e_config_bindings_wheel_edd = E_CONFIG_DD_NEW("E_Config_Binding_Wheel", 
+                                                 E_Config_Binding_Wheel);
 #undef T
 #undef D
 #define T E_Config_Binding_Wheel
@@ -311,7 +314,8 @@
    E_CONFIG_VAL(D, T, b3, INT);
    E_CONFIG_VAL(D, T, a3, INT);
 
-   _e_config_mime_icon_edd = E_CONFIG_DD_NEW("E_Config_Mime_Icon", 
E_Config_Mime_Icon);
+   _e_config_mime_icon_edd = E_CONFIG_DD_NEW("E_Config_Mime_Icon", 
+                                            E_Config_Mime_Icon);
 #undef T
 #undef D
 #define T E_Config_Mime_Icon
@@ -474,18 +478,31 @@
    E_CONFIG_VAL(D, T, desklock_background, STR);
    E_CONFIG_VAL(D, T, desklock_auth_method, INT);
    E_CONFIG_VAL(D, T, desklock_login_box_zone, INT);
-   E_CONFIG_VAL(D, T, desklock_autolock, INT);
-   E_CONFIG_VAL(D, T, desklock_use_timeout, INT);
-   E_CONFIG_VAL(D, T, desklock_timeout, DOUBLE);
-   E_CONFIG_VAL(D, T, desklock_disable_screensaver, INT);
-   E_CONFIG_VAL(D, T, desklock_use_custom_screensaver, INT);
-   E_CONFIG_VAL(D, T, desklock_custom_screensaver_cmd, STR);
+   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_use_custom_desklock, INT);
+   E_CONFIG_VAL(D, T, desklock_custom_desklock_cmd, STR);
    E_CONFIG_VAL(D, T, display_res_restore, INT);
    E_CONFIG_VAL(D, T, display_res_width, INT);
    E_CONFIG_VAL(D, T, display_res_height, INT);
    E_CONFIG_VAL(D, T, display_res_hz, INT);
    E_CONFIG_VAL(D, T, display_res_rotation, INT);
    
+   E_CONFIG_VAL(D, T, screensaver_enable, INT);
+   E_CONFIG_VAL(D, T, screensaver_timeout, INT);
+   E_CONFIG_VAL(D, T, screensaver_interval, INT);
+   E_CONFIG_VAL(D, T, screensaver_blanking, INT);
+   E_CONFIG_VAL(D, T, screensaver_expose, INT);
+   
+   E_CONFIG_VAL(D, T, dpms_enable, INT);
+   E_CONFIG_VAL(D, T, dpms_standby_enable, INT);
+   E_CONFIG_VAL(D, T, dpms_suspend_enable, INT);
+   E_CONFIG_VAL(D, T, dpms_off_enable, INT);
+   E_CONFIG_VAL(D, T, dpms_standby_timeout, INT);
+   E_CONFIG_VAL(D, T, dpms_suspend_timeout, INT);
+   E_CONFIG_VAL(D, T, dpms_off_timeout, INT);
+   
    E_CONFIG_VAL(D, T, border_raise_on_mouse_action, INT);
    E_CONFIG_VAL(D, T, border_raise_on_focus, INT);
    E_CONFIG_VAL(D, T, desk_flip_wrap, INT);
@@ -678,10 +695,9 @@
    e_config->desklock_background = NULL;
    e_config->desklock_auth_method = 0;
    e_config->desklock_login_box_zone = -1;
-   e_config->desklock_autolock = 0;
-   e_config->desklock_use_timeout = 0;
-   e_config->desklock_timeout = 300.0;
-   e_config->desklock_disable_screensaver = 0;
+   e_config->desklock_autolock_screensaver = 0;
+   e_config->desklock_autolock_idle = 0;
+   e_config->desklock_autolock_idle_timeout = 300.0;
    
    e_config->display_res_restore = 0;
    e_config->display_res_width = 0;
@@ -759,24 +775,15 @@
        //_restore_defaults_cb function
        
        CFG_MOUSEBIND(E_BINDING_CONTEXT_BORDER, 1,
-                     E_BINDING_MODIFIER_ALT, 0, 
-                     "window_move", NULL);
+                     E_BINDING_MODIFIER_ALT, 0, "window_move", NULL);
        CFG_MOUSEBIND(E_BINDING_CONTEXT_BORDER, 2,
-                     E_BINDING_MODIFIER_ALT, 0, 
-                     "window_resize", NULL);
+                     E_BINDING_MODIFIER_ALT, 0, "window_resize", NULL);
        CFG_MOUSEBIND(E_BINDING_CONTEXT_BORDER, 3,
-                     E_BINDING_MODIFIER_ALT, 0, 
-                     "window_menu", NULL);
-       CFG_MOUSEBIND(E_BINDING_CONTEXT_ZONE, 1,
-                     0, 0, 
-                     "menu_show", "main");
-       CFG_MOUSEBIND(E_BINDING_CONTEXT_ZONE, 2,
-                     0, 0, 
-                     "menu_show", "clients");
+                     E_BINDING_MODIFIER_ALT, 0, "window_menu", NULL);
+       CFG_MOUSEBIND(E_BINDING_CONTEXT_ZONE, 1, 0, 0, "menu_show", "main");
+       CFG_MOUSEBIND(E_BINDING_CONTEXT_ZONE, 2, 0, 0, "menu_show", "clients");
 #ifdef ENABLE_FAVORITES
-       CFG_MOUSEBIND(E_BINDING_CONTEXT_ZONE, 3,
-                     0, 0, 
-                     "menu_show", "favorites");
+       CFG_MOUSEBIND(E_BINDING_CONTEXT_ZONE, 3, 0, 0, "menu_show", 
"favorites");
 #endif
      }
      {
@@ -1225,8 +1232,8 @@
    IFCFGEND;
      
    IFCFG(0x00106);
-   e_config->desklock_use_custom_screensaver = 0;
-   e_config->desklock_custom_screensaver_cmd = NULL;     
+   e_config->desklock_use_custom_desklock = 0;
+   e_config->desklock_custom_desklock_cmd = NULL;     
    IFCFGEND;
 
    IFCFG(0x0107); /* the version # where this value(s) was introduced */
@@ -1297,9 +1304,24 @@
    IFCFG(0x0108);
    e_config->desk_auto_switch = 0;
    IFCFGEND;
-   
-   e_config->config_version = E_CONFIG_FILE_VERSION;
 
+   IFCFG(0x0109);
+   e_config->dpms_enable = 0;
+   e_config->dpms_standby_enable = 0;
+   e_config->dpms_suspend_enable = 0;
+   e_config->dpms_off_enable = 0;
+   e_config->dpms_standby_timeout = 0;
+   e_config->dpms_suspend_timeout = 0;
+   e_config->dpms_off_timeout = 0;
+   e_config->screensaver_enable = 0;
+   e_config->screensaver_timeout = 0;
+   e_config->screensaver_interval = 5;
+   e_config->screensaver_blanking = 2;
+   e_config->screensaver_expose = 2;
+   IFCFGEND;
+     
+   e_config->config_version = E_CONFIG_FILE_VERSION;   
+     
 #if 0 /* example of new config */
    IFCFG(0x0090); /* the version # where this value(s) was introduced */
    e_config->new_value = 10; /* set the value(s) */
@@ -1382,11 +1404,10 @@
    E_CONFIG_LIMIT(e_config->cfgdlg_default_mode, 0, 1);
    E_CONFIG_LIMIT(e_config->font_hinting, 0, 2);
    E_CONFIG_LIMIT(e_config->desklock_login_box_zone, -2, 1000);
-   E_CONFIG_LIMIT(e_config->desklock_autolock, 0, 1);
-   E_CONFIG_LIMIT(e_config->desklock_use_timeout, 0, 1);
-   E_CONFIG_LIMIT(e_config->desklock_timeout, 1.0, 5400.0);
-   E_CONFIG_LIMIT(e_config->desklock_disable_screensaver, 0, 1);
-   E_CONFIG_LIMIT(e_config->desklock_use_custom_screensaver, 0, 1);
+   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_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);
    E_CONFIG_LIMIT(e_config->display_res_height, 1, 8192);
@@ -1397,6 +1418,19 @@
    E_CONFIG_LIMIT(e_config->desk_flip_wrap, 0, 1);
    E_CONFIG_LIMIT(e_config->remember_internal_windows, 0, 1);
    E_CONFIG_LIMIT(e_config->desk_auto_switch, 0, 1);
+
+   E_CONFIG_LIMIT(e_config->dpms_enable, 0, 1);
+   E_CONFIG_LIMIT(e_config->dpms_standby_enable, 0, 1);
+   E_CONFIG_LIMIT(e_config->dpms_suspend_enable, 0, 1);
+   E_CONFIG_LIMIT(e_config->dpms_off_enable, 0, 1);
+   E_CONFIG_LIMIT(e_config->dpms_standby_timeout, 0, 5400);
+   E_CONFIG_LIMIT(e_config->dpms_suspend_timeout, 0, 5400);
+   E_CONFIG_LIMIT(e_config->dpms_off_timeout, 0, 5400);
+
+   E_CONFIG_LIMIT(e_config->screensaver_timeout, 0, 5400);
+   E_CONFIG_LIMIT(e_config->screensaver_interval, 0, 5400);
+   E_CONFIG_LIMIT(e_config->screensaver_blanking, 0, 2);
+   E_CONFIG_LIMIT(e_config->screensaver_expose, 0, 2);
    
    /* FIXME: disabled auto apply because it causes problems */
    e_config->cfgdlg_auto_apply = 0;
@@ -1983,7 +2017,7 @@
        if (e_config->wallpaper_import_last_dev) 
evas_stringshare_del(e_config->wallpaper_import_last_dev);
        if (e_config->wallpaper_import_last_path) 
evas_stringshare_del(e_config->wallpaper_import_last_path);
        if (e_config->theme_default_border_style) 
evas_stringshare_del(e_config->theme_default_border_style);
-       if (e_config->desklock_custom_screensaver_cmd) 
evas_stringshare_del(e_config->desklock_custom_screensaver_cmd);
+       if (e_config->desklock_custom_desklock_cmd) 
evas_stringshare_del(e_config->desklock_custom_desklock_cmd);
        E_FREE(e_config);
      }
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_config.h,v
retrieving revision 1.140
retrieving revision 1.141
diff -u -3 -r1.140 -r1.141
--- e_config.h  7 Jan 2007 23:45:35 -0000       1.140
+++ e_config.h  13 Feb 2007 16:33:35 -0000      1.141
@@ -52,7 +52,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 0x0108
+#define E_CONFIG_FILE_GENERATION 0x0109
 #define E_CONFIG_FILE_VERSION    ((E_CONFIG_FILE_EPOCH << 16) | 
E_CONFIG_FILE_GENERATION)
 
 #define E_EVAS_ENGINE_DEFAULT      0
@@ -227,13 +227,26 @@
    const char *desklock_background; // GUI
    int         desklock_auth_method; // GUI
    int         desklock_login_box_zone; // GUI
-   int         desklock_autolock; // GUI
-   int         desklock_use_timeout; // GUI
-   double      desklock_timeout; // GUI
-   int         desklock_disable_screensaver; // GUI
-   int         desklock_use_custom_screensaver; //GUI
-   const char *desklock_custom_screensaver_cmd; // GUI
+   int         desklock_autolock_screensaver; // GUI
+   int         desklock_autolock_idle; // GUI
+   double      desklock_autolock_idle_timeout; // GUI
+   int         desklock_use_custom_desklock; //GUI
+   const char *desklock_custom_desklock_cmd; // GUI
    
+   int         screensaver_enable;
+   int         screensaver_timeout;
+   int         screensaver_interval;
+   int         screensaver_blanking;
+   int         screensaver_expose;
+  
+   int         dpms_enable;
+   int         dpms_standby_enable;
+   int         dpms_standby_timeout;
+   int         dpms_suspend_enable;
+   int         dpms_suspend_timeout;
+   int         dpms_off_enable;
+   int         dpms_off_timeout;
+
    int         display_res_restore; // GUI
    int         display_res_width; // GUI
    int         display_res_height; // GUI
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_configure.c,v
retrieving revision 1.88
retrieving revision 1.89
diff -u -3 -r1.88 -r1.89
--- e_configure.c       10 Jan 2007 19:26:39 -0000      1.88
+++ e_configure.c       13 Feb 2007 16:33:35 -0000      1.89
@@ -412,7 +412,9 @@
    _e_configure_item_add(cat, _("Virtual Desktops"), "enlightenment/desktops", 
e_int_config_desks);
    _e_configure_item_add(cat, _("Screen Resolution"), 
"enlightenment/screen_resolution", e_int_config_display);
    _e_configure_item_add(cat, _("Screen Lock"), "enlightenment/desklock", 
e_int_config_desklock);
-   
+   _e_configure_item_add(cat, _("Screen Saver"), "enlightenment/screensaver", 
e_int_config_screensaver);
+   _e_configure_item_add(cat, _("DPMS Settings"), "enlightenment/dpms", 
e_int_config_dpms);
+
    cat = _e_configure_category_add(eco, _("Keyboard & Mouse"), 
"enlightenment/behavior");
    _e_configure_item_add(cat, _("Key Bindings"), "enlightenment/keys", 
e_int_config_keybindings);
    _e_configure_item_add(cat, _("Mouse Bindings"), 
"enlightenment/mouse_clean", e_int_config_mousebindings);
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_desklock.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -3 -r1.32 -r1.33
--- e_desklock.c        7 Jan 2007 09:22:21 -0000       1.32
+++ e_desklock.c        13 Feb 2007 16:33:35 -0000      1.33
@@ -52,8 +52,10 @@
 static Ecore_Event_Handler *_e_desklock_exit_handler = NULL;
 static pid_t                _e_desklock_child_pid = -1;
 #endif
-static Ecore_Exe *_e_custom_saver_exe = NULL;
-static Ecore_Event_Handler *_e_custom_saver_exe_handler = NULL;
+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 int _e_desklock_user_idle = 0;
 
 /***********************************************************************/
 
@@ -62,7 +64,8 @@
 static int _e_desklock_cb_mouse_up(void *data, int type, void *event);
 static int _e_desklock_cb_mouse_wheel(void *data, int type, void *event);
 static int _e_desklock_cb_mouse_move(void *data, int type, void *event);
-static int _e_desklock_cb_custom_saver_exit(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, int type, void *event);
 
 static void _e_desklock_passwd_update();
 static void _e_desklock_backspace();
@@ -84,20 +87,10 @@
 e_desklock_init(void)
 {
    
-   if (e_config->desklock_disable_screensaver)
-     ecore_x_screensaver_timeout_set(0);
-   else
-     {
-       if (e_config->desklock_use_timeout)
-         ecore_x_screensaver_timeout_set(e_config->desklock_timeout);   
-     }
-
-   /*
-    * Effectively hide the X screensaver yet allow
-    * it to generate the timer events for us.
-    */
-   ecore_x_screensaver_blank_set(!e_config->desklock_use_custom_screensaver);
-   ecore_x_screensaver_expose_set(!e_config->desklock_use_custom_screensaver);
+   /* A timer to tick every second, watching for an idle user */
+   _e_desklock_idle_timer = ecore_timer_add(1.0,
+                                           _e_desklock_cb_idle_timer,
+                                           NULL);
      
    if (e_config->desklock_background)
      e_filereg_register(e_config->desklock_background);
@@ -125,26 +118,26 @@
    int                   zone_counter;
    int                   total_zone_num;
    
+   if (_e_custom_desklock_exe) return 0;
 
-#ifndef HAVE_PAM
-   e_util_dialog_show(_("Error - no PAM support"),
-                     _("No PAM support was built into Enlightenment, so<br>"
-                       "desk locking is disabled."));
-   return 0;
-#endif   
-   if (_e_custom_saver_exe) return 0;
-
-   if (e_config->desklock_use_custom_screensaver)
+   if (e_config->desklock_use_custom_desklock)
      {
-       _e_custom_saver_exe_handler = 
ecore_event_handler_add(ECORE_EXE_EVENT_DEL, 
-                                                             
_e_desklock_cb_custom_saver_exit, 
+       _e_custom_desklock_exe_handler = 
ecore_event_handler_add(ECORE_EXE_EVENT_DEL, 
+                                                             
_e_desklock_cb_custom_desklock_exit, 
                                                              NULL);
         e_util_library_path_strip();
-       _e_custom_saver_exe = 
ecore_exe_run(e_config->desklock_custom_screensaver_cmd, NULL);
+       _e_custom_desklock_exe = 
ecore_exe_run(e_config->desklock_custom_desklock_cmd, NULL);
         e_util_library_path_restore();
        return 1;
      }      
-   
+
+#ifndef HAVE_PAM
+   e_util_dialog_show(_("Error - no PAM support"),
+                     _("No PAM support was built into Enlightenment, so<br>"
+                       "desk locking is disabled."));
+   return 0;
+#endif   
+     
    if (edd) return 0;
 
 #ifdef HAVE_PAM
@@ -357,16 +350,17 @@
 {
    E_Desklock_Popup_Data       *edp;
    
-   if ((!edd) && (!_e_custom_saver_exe)) return;
+   if ((!edd) && (!_e_custom_desklock_exe)) return;
 
-   if (e_config->desklock_use_custom_screensaver)
+   if (e_config->desklock_use_custom_desklock)
      {
-       _e_custom_saver_exe = NULL;
+       _e_custom_desklock_exe = NULL;
        return;
      }
    
    if (edd->elock_grab_break_wnd)
      ecore_x_window_show(edd->elock_grab_break_wnd);
+   
    while (edd->elock_wnd_list)
      {
        edp = edd->elock_wnd_list->data;
@@ -778,28 +772,65 @@
 #endif
 
 static int
-_e_desklock_cb_custom_saver_exit(void *data, int type, void *event)
+_e_desklock_cb_custom_desklock_exit(void *data, int type, void *event)
 {
    Ecore_Exe_Event_Del *ev;
   
    ev = event;
-   if (ev->exe != _e_custom_saver_exe) return 1;
+   if (ev->exe != _e_custom_desklock_exe) return 1;
    
    if (ev->exit_code != 0)
      {
        /* do something profound here... like notify someone */
      }
    
-   /*
-    * Miserable HACK alert!!!
-    * Seems I must reset this.  Some reason yet unknown, my
-    * intended values are getting reset!?! 
-    */
-   ecore_x_screensaver_timeout_set(e_config->desklock_timeout);   
-   ecore_x_screensaver_blank_set(!e_config->desklock_use_custom_screensaver);
-   ecore_x_screensaver_expose_set(!e_config->desklock_use_custom_screensaver);
-   
    e_desklock_hide();
    
    return 0;
+}
+
+static int 
+_e_desklock_cb_idle_timer(void *data, int type, void *event)
+{
+   static double time_of_last_event = 0;
+   static unsigned int xtime_of_last_user_activity = 0;
+
+   if ( ecore_x_current_user_activity_time_get() > xtime_of_last_user_activity 
)
+     {
+        xtime_of_last_user_activity = ecore_x_current_user_activity_time_get();
+        time_of_last_event = ecore_time_get();
+     }
+
+   if (e_config->desklock_autolock_idle)
+     {
+       /* If a desklock is already up, bail */
+        if ((_e_custom_desklock_exe) || (edd)) return 1;
+
+       /* If we have exceeded our idle time... */
+        double t = ecore_time_get();
+        if (t - time_of_last_event >= e_config->desklock_autolock_idle_timeout)
+         {
+            /*
+             * Unfortunately, not all "desklocks" stay up for as long as
+             * the user is idle or until it is unlocked.  
+             *
+             * 'xscreensaver-command -lock' for example sends a command 
+             * to xscreensaver and then terminates.  So, we have another 
+             * check (_e_desklock_user_idle) which lets us know that we 
+             * have locked the screen due to idleness.
+             */
+            if (!_e_desklock_user_idle)
+              {
+                 _e_desklock_user_idle = 1;
+                  e_desklock_show();
+              }
+         }
+       else
+         {
+            _e_desklock_user_idle = 0;
+         }
+     }
+
+   /* Make sure our timer persists. */
+   return 1;
 }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_includes.h,v
retrieving revision 1.146
retrieving revision 1.147
diff -u -3 -r1.146 -r1.147
--- e_includes.h        10 Feb 2007 17:23:05 -0000      1.146
+++ e_includes.h        13 Feb 2007 16:33:35 -0000      1.147
@@ -102,6 +102,8 @@
 #include "e_int_config_winlist.h"
 #include "e_int_config_display.h"
 #include "e_int_config_desklock.h"
+#include "e_int_config_screensaver.h"
+#include "e_int_config_dpms.h"
 #include "e_int_config_exebuf.h"
 #include "e_int_config_apps.h"
 #include "e_int_config_cfgdialogs.h"
@@ -113,6 +115,8 @@
 #include "e_int_config_mime_edit.h"
 #include "e_exebuf.h"
 #include "e_desklock.h"
+#include "e_screensaver.h"
+#include "e_dpms.h"
 #include "e_int_config_modules.h"
 #include "e_exehist.h"
 #include "e_color_class.h"
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_desklock.c,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -3 -r1.46 -r1.47
--- e_int_config_desklock.c     15 Jan 2007 17:14:12 -0000      1.46
+++ e_int_config_desklock.c     13 Feb 2007 16:33:35 -0000      1.47
@@ -51,16 +51,16 @@
    char *desklock_passwd_cp;
    int show_password; // local
    
+   int autolock_screensaver;
    int autolock; // in e_config;
-   int use_timeout; // in e_config;
    double timeout; // in e_config;
    
    int login_box_zone; // in e_config;
    int specific_lb_zone; // local variable
    int specific_lb_zone_backup; // used to have smart iface
    
-   int use_custom_screensaver;
-   char *custom_screensaver_cmd;
+   int use_custom_desklock;
+   char *custom_desklock_cmd;
    
    int zone_count; // local variable;
 
@@ -283,9 +283,9 @@
        cfdata->desklock_passwd_cp = strdup("");
      }
    
-   cfdata->autolock = e_config->desklock_autolock;
-   cfdata->use_timeout = e_config->desklock_use_timeout;
-   cfdata->timeout = e_config->desklock_timeout / 60;
+   cfdata->autolock_screensaver = e_config->desklock_autolock_screensaver;
+   cfdata->autolock = e_config->desklock_autolock_idle;
+   cfdata->timeout = e_config->desklock_autolock_idle_timeout / 60;
    
    /* should be taken from e_config */
    //cfdata->login_box_on_zone = -1;
@@ -341,9 +341,9 @@
    cfdata->auth_method = e_config->desklock_auth_method;
 #endif
    
-   cfdata->use_custom_screensaver = e_config->desklock_use_custom_screensaver;
-   if (e_config->desklock_custom_screensaver_cmd)
-      cfdata->custom_screensaver_cmd = 
strdup(e_config->desklock_custom_screensaver_cmd);
+   cfdata->use_custom_desklock = e_config->desklock_use_custom_desklock;
+   if (e_config->desklock_custom_desklock_cmd)
+      cfdata->custom_desklock_cmd = 
strdup(e_config->desklock_custom_desklock_cmd);
      
    //vertical_lb_align = e_config->desklock_login
 }
@@ -378,17 +378,14 @@
          evas_stringshare_del(e_config->desklock_personal_passwd);
      }
    e_config->desklock_personal_passwd = 
evas_stringshare_add(cfdata->desklock_passwd_cp);
-   e_config->desklock_autolock = cfdata->autolock;
-   e_config->desklock_use_timeout = cfdata->use_timeout;
-   e_config->desklock_timeout = cfdata->timeout * 60;
+   
+   e_config->desklock_autolock_screensaver = cfdata->autolock_screensaver;
+   e_config->desklock_autolock_idle = cfdata->autolock;
+   e_config->desklock_autolock_idle_timeout = cfdata->timeout * 60;
+     
 #ifdef HAVE_PAM
    e_config->desklock_auth_method = cfdata->auth_method;
 #endif
-   if (e_config->desklock_use_timeout)
-     ecore_x_screensaver_timeout_set(e_config->desklock_timeout);
-       
-   ecore_x_screensaver_blank_set(!e_config->desklock_use_custom_screensaver);
-   ecore_x_screensaver_expose_set(!e_config->desklock_use_custom_screensaver); 
       
      
    e_config_save_queue();
   return 1;
@@ -403,15 +400,16 @@
    of = e_widget_framelist_add(evas, _("Automatic Locking"), 0);
    e_widget_disabled_set(of, !ecore_x_screensaver_event_available_get());
    
-   ob = e_widget_check_add(evas, _("Enable screensaver"), 
&(cfdata->use_timeout));
+   ob = e_widget_check_add(evas, _("Lock when X screensaver activates"), 
+                           &(cfdata->autolock_screensaver));
    e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
-   e_widget_framelist_object_append(of, ob);
+   e_widget_framelist_object_append(of, ob);   
    
-   ob = e_widget_check_add(evas, _("Lock when the screensaver starts"), 
&(cfdata->autolock));
+   ob = e_widget_check_add(evas, _("Lock when idle time exceeded"), 
&(cfdata->autolock));
    e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
    e_widget_framelist_object_append(of, ob);
 
-   ob = e_widget_label_add(evas, _("Time until screensaver starts"));
+   ob = e_widget_label_add(evas, _("Idle time to exceed"));
    e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
    e_widget_framelist_object_append(of, ob);
    ob = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"),
@@ -458,26 +456,21 @@
    else
      e_config->desklock_login_box_zone = LOGINBOX_SHOW_ALL_SCREENS;
 
-   e_config->desklock_autolock = cfdata->autolock;
-   e_config->desklock_use_timeout = cfdata->use_timeout;
-   e_config->desklock_timeout = cfdata->timeout * 60;
+   e_config->desklock_autolock_screensaver = cfdata->autolock_screensaver;
+   e_config->desklock_autolock_idle = cfdata->autolock;
+   e_config->desklock_autolock_idle_timeout = cfdata->timeout * 60;
 #ifdef HAVE_PAM
    e_config->desklock_auth_method = cfdata->auth_method;
 #endif
 
-   if (e_config->desklock_use_timeout)
-     ecore_x_screensaver_timeout_set(e_config->desklock_timeout);        
-     
-   e_config->desklock_use_custom_screensaver = cfdata->use_custom_screensaver;
-   if (cfdata->custom_screensaver_cmd) 
+   e_config->desklock_use_custom_desklock = cfdata->use_custom_desklock;
+   if (cfdata->custom_desklock_cmd) 
      {
-       if (e_config->desklock_custom_screensaver_cmd)
-         evas_stringshare_del(e_config->desklock_custom_screensaver_cmd);
-       e_config->desklock_custom_screensaver_cmd = 
evas_stringshare_add(cfdata->custom_screensaver_cmd);
+       if (e_config->desklock_custom_desklock_cmd)
+         evas_stringshare_del(e_config->desklock_custom_desklock_cmd);
+       e_config->desklock_custom_desklock_cmd = 
evas_stringshare_add(cfdata->custom_desklock_cmd);
      }
    
-   ecore_x_screensaver_blank_set(!e_config->desklock_use_custom_screensaver);
-   ecore_x_screensaver_expose_set(!e_config->desklock_use_custom_screensaver);
    e_config_save_queue();
    return 1;
 }
@@ -708,19 +701,16 @@
    */
    
    of = e_widget_framelist_add(evas, _("Automatic Locking"), 0);
-   
-   e_widget_disabled_set(of, !ecore_x_screensaver_event_available_get());
-   
-   ob = e_widget_check_add(evas, _("Enable X screensaver"), 
&(cfdata->use_timeout));
+
+   ob = e_widget_check_add(evas, _("Lock when X screensaver activates"), 
+                           &(cfdata->autolock_screensaver));
    e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
    e_widget_framelist_object_append(of, ob);
-   
-   ob = e_widget_check_add(evas, _("Lock when the screensaver starts"), 
&(cfdata->autolock));
-   e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
+
+   ob = e_widget_check_add(evas, _("Lock when idle time exceeded"), 
&(cfdata->autolock));
    e_widget_framelist_object_append(of, ob);
    
-   ob = e_widget_label_add(evas, _("Time until screensaver starts"));
-   e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
+   ob = e_widget_label_add(evas, _("Idle time to exceed"));
    e_widget_framelist_object_append(of, ob);
    ob = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"),
                            1.0, 90.0,
@@ -734,15 +724,16 @@
 #endif
 
    /* 
-    * Allow Custom Screen Saver
+    * Allow Custom Desklock
     *   Useful, for example, for those of us who prefer
     *   to use things like xscreensaver, kscreesaver, etc...
+    *   and force them to lock with a custom command.
     */
-   of = e_widget_framelist_add(evas, _("Custom Screensaver"), 0);
-   ob = e_widget_check_add(evas, _("Use custom screensaver/desklock"), 
-                           &(cfdata->use_custom_screensaver));
+   of = e_widget_framelist_add(evas, _("Custom Desklock"), 0);
+   ob = e_widget_check_add(evas, _("Use custom desklock"), 
+                           &(cfdata->use_custom_desklock));
    e_widget_framelist_object_append(of, ob);
-   ob = e_widget_entry_add(evas, &(cfdata->custom_screensaver_cmd));
+   ob = e_widget_entry_add(evas, &(cfdata->custom_desklock_cmd));
    e_widget_framelist_object_append(of, ob);
 #ifdef HAVE_PAM
    e_widget_table_object_append(ot, of, 0, 4, 2, 1, 1, 1, 1, 1);
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_ipc_handlers.h,v
retrieving revision 1.142
retrieving revision 1.143
diff -u -3 -r1.142 -r1.143
--- e_ipc_handlers.h    29 Dec 2006 02:56:26 -0000      1.142
+++ e_ipc_handlers.h    13 Feb 2007 16:33:35 -0000      1.143
@@ -7818,15 +7818,15 @@
 #undef HDL
 
 /****************************************************************************/
-#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_SET
+#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_DESKLOCK_SET
 #if (TYPE == E_REMOTE_OPTIONS)
-   OP("-desklock-use-custom-screensaver-set", 1, "Set whether a custom 
screensaver will be utilized", 0, HDL)
+   OP("-desklock-use-custom-desklock-set", 1, "Set whether a custom desklock 
will be utilized", 0, HDL)
 #elif (TYPE == E_REMOTE_OUT)
    REQ_INT(atoi(params[0]), HDL);
 #elif (TYPE == E_WM_IN)
    START_INT(policy, HDL);
-   e_config->desklock_use_custom_screensaver = policy;
-   E_CONFIG_LIMIT(e_config->desklock_use_custom_screensaver, 0, 1);
+   e_config->desklock_use_custom_desklock = policy;
+   E_CONFIG_LIMIT(e_config->desklock_use_custom_desklock, 0, 1);
    SAVE;
    END_INT;
 #elif (TYPE == E_REMOTE_IN)
@@ -7834,19 +7834,19 @@
 #undef HDL
 
 /****************************************************************************/
-#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET
+#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_DESKLOCK_GET
 #if (TYPE == E_REMOTE_OPTIONS)
-   OP("-desklock-use-custom-screensaver-get", 0, "Get whether a custom screen 
saver is being used", 1, HDL)
+   OP("-desklock-use-custom-desklock-get", 0, "Get whether a custom desklock 
is being used", 1, HDL)
 #elif (TYPE == E_REMOTE_OUT)
    REQ_NULL(HDL);
 #elif (TYPE == E_WM_IN)
-   SEND_INT(e_config->desklock_use_custom_screensaver, 
E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET_REPLY, HDL);
+   SEND_INT(e_config->desklock_use_custom_desklock, 
E_IPC_OP_DESKLOCK_USE_CUSTOM_DESKLOCK_GET_REPLY, HDL);
 #elif (TYPE == E_REMOTE_IN)
 #endif
 #undef HDL
 
 /****************************************************************************/
-#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET_REPLY
+#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_DESKLOCK_GET_REPLY
 #if (TYPE == E_REMOTE_OPTIONS)
 #elif (TYPE == E_REMOTE_OUT)
 #elif (TYPE == E_WM_IN)
@@ -7858,35 +7858,35 @@
 #undef HDL
 
 /****************************************************************************/
-#define HDL E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_SET
+#define HDL E_IPC_OP_DESKLOCK_CUSTOM_DESKLOCK_CMD_SET
 #if (TYPE == E_REMOTE_OPTIONS)
-   OP("-desklock-custom-screensaver-cmd-set", 1, "Set the current custom 
screensaver command to OPT1", 0, HDL)
+   OP("-desklock-custom-desklock-cmd-set", 1, "Set the current custom desklock 
command to OPT1", 0, HDL)
 #elif (TYPE == E_REMOTE_OUT)
    REQ_STRING(params[0], HDL);
 #elif (TYPE == E_WM_IN)
    STRING(s, HDL);
-   if (e_config->desklock_custom_screensaver_cmd)
-          evas_stringshare_del(e_config->desklock_custom_screensaver_cmd);
-   e_config->desklock_custom_screensaver_cmd = evas_stringshare_add(s);   
+   if (e_config->desklock_custom_desklock_cmd)
+          evas_stringshare_del(e_config->desklock_custom_desklock_cmd);
+   e_config->desklock_custom_desklock_cmd = evas_stringshare_add(s);   
    END_STRING(s);
 #elif (TYPE == E_REMOTE_IN)
 #endif
 #undef HDL
 
 /****************************************************************************/
-#define HDL E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_GET
+#define HDL E_IPC_OP_DESKLOCK_CUSTOM_DESKLOCK_CMD_GET
 #if (TYPE == E_REMOTE_OPTIONS)
-   OP("-desklock-custom-screensaver-cmd-get", 0, "Get the current custom 
screensaver command", 1, HDL)
+   OP("-desklock-custom-desklock-cmd-get", 0, "Get the current custom desklock 
command", 1, HDL)
 #elif (TYPE == E_REMOTE_OUT)
    REQ_NULL(HDL);
 #elif (TYPE == E_WM_IN)
-   SEND_STRING(e_config->desklock_custom_screensaver_cmd, 
E_IPC_OP_PROFILE_GET_REPLY, HDL);
+   SEND_STRING(e_config->desklock_custom_desklock_cmd, 
E_IPC_OP_DESKLOCK_CUSTOM_DESKLOCK_CMD_GET_REPLY, HDL);
 #elif (TYPE == E_REMOTE_IN)
 #endif
 #undef HDL
      
 /****************************************************************************/
-#define HDL E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_GET_REPLY
+#define HDL E_IPC_OP_DESKLOCK_CUSTOM_DESKLOCK_CMD_GET_REPLY
 #if (TYPE == E_REMOTE_OPTIONS)
 #elif (TYPE == E_REMOTE_OUT)
 #elif (TYPE == E_WM_IN)
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_ipc_handlers_list.h,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -3 -r1.54 -r1.55
--- e_ipc_handlers_list.h       29 Dec 2006 02:56:26 -0000      1.54
+++ e_ipc_handlers_list.h       13 Feb 2007 16:33:35 -0000      1.55
@@ -414,10 +414,9 @@
 #define E_IPC_OP_REBOOT 377
 #define E_IPC_OP_SUSPEND 378
 
-#define E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_SET 379
-#define E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET 380
-#define E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET_REPLY 381
-#define E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_SET 382
-#define E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_GET 383
-#define E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_GET_REPLY 384
-  
+#define E_IPC_OP_DESKLOCK_USE_CUSTOM_DESKLOCK_SET 379
+#define E_IPC_OP_DESKLOCK_USE_CUSTOM_DESKLOCK_GET 380
+#define E_IPC_OP_DESKLOCK_USE_CUSTOM_DESKLOCK_GET_REPLY 381
+#define E_IPC_OP_DESKLOCK_CUSTOM_DESKLOCK_CMD_SET 382
+#define E_IPC_OP_DESKLOCK_CUSTOM_DESKLOCK_CMD_GET 383
+#define E_IPC_OP_DESKLOCK_CUSTOM_DESKLOCK_CMD_GET_REPLY 384
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_main.c,v
retrieving revision 1.199
retrieving revision 1.200
diff -u -3 -r1.199 -r1.200
--- e_main.c    17 Dec 2006 11:24:59 -0000      1.199
+++ e_main.c    13 Feb 2007 16:33:35 -0000      1.200
@@ -769,6 +769,22 @@
      }
    _e_main_shutdown_push(e_exebuf_shutdown);
 
+   TS("dpms");     
+   /* setup dpms */
+   if (!e_dpms_init())
+     {
+       e_error_message_show(_("Enlightenment cannot configure the DPMS 
settings."));
+       _e_main_shutdown(-1);
+     }
+    
+   TS("screensaver");
+   /* setup screensaver */
+   if (!e_screensaver_init())
+     {
+       e_error_message_show(_("Enlightenment cannot configure the X 
screensaver."));
+       _e_main_shutdown(-1);
+     }
+     
    TS("desklock");
    /* setup desklock */
    if (!e_desklock_init())
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_manager.c,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -3 -r1.60 -r1.61
--- e_manager.c 29 Dec 2006 05:42:04 -0000      1.60
+++ e_manager.c 13 Feb 2007 16:33:35 -0000      1.61
@@ -754,7 +754,7 @@
    
    if (e->on)
      {
-       if ((e_config->desklock_autolock) || 
(e_config->desklock_use_custom_screensaver))
+       if (e_config->desklock_autolock_screensaver)
          e_desklock_show();
      }
    return 1;



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to