Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        E.h main.c mod-misc.c session.c 


Log Message:
Add 'stop' script and alternative session script handling method (old may go 
away).
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/E.h,v
retrieving revision 1.509
retrieving revision 1.510
diff -u -3 -r1.509 -r1.510
--- E.h 6 Nov 2005 17:34:31 -0000       1.509
+++ E.h 6 Nov 2005 18:12:10 -0000       1.510
@@ -68,6 +68,8 @@
 #define ENABLE_TRANSPARENCY 1
 #define ENABLE_THEME_TRANSPARENCY 1
 
+#define ENABLE_OLD_SESSION_HELPERS 1
+
 /* dmalloc debugging */
 /*#include <dmalloc.h> */
 
@@ -500,8 +502,12 @@
    {
       char                enable_logout_dialog;
       char                enable_reboot_halt;
+      char               *cmd;
+#if ENABLE_OLD_SESSION_HELPERS
       char               *cmd_init;
       char               *cmd_start;
+      char               *cmd_stop;
+#endif
       char               *cmd_reboot;
       char               *cmd_halt;
    } session;
@@ -1127,9 +1133,14 @@
 #define EEXIT_THEME     4
 #define EEXIT_EXEC      5
 
+#define ESESSION_INIT   0
+#define ESESSION_START  1
+#define ESESSION_STOP   2
+
 void                SessionInit(void);
 void                SessionSave(int shutdown);
 void                SessionExit(int mode, const char *params);
+void                SessionHelper(int when);
 void                ProcessICEMSGS(void);
 int                 GetSMfd(void);
 void                SessionGetInfo(EWin * ewin, Atom atom_change);
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/main.c,v
retrieving revision 1.134
retrieving revision 1.135
diff -u -3 -r1.134 -r1.135
--- main.c      30 Oct 2005 19:40:49 -0000      1.134
+++ main.c      6 Nov 2005 18:12:12 -0000       1.135
@@ -494,13 +494,9 @@
 RunInitPrograms(void)
 {
    if (Mode.wm.session_start)
-     {
-       if (Conf.session.cmd_init && canexec(Conf.session.cmd_init))
-          system(Conf.session.cmd_init);
-     }
+      SessionHelper(ESESSION_INIT);
 
-   if (Conf.session.cmd_start && canexec(Conf.session.cmd_start))
-      system(Conf.session.cmd_start);
+   SessionHelper(ESESSION_START);
 
    if (Conf.startup.firsttime && Mode.wm.master)
      {
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/mod-misc.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- mod-misc.c  30 Oct 2005 19:40:49 -0000      1.23
+++ mod-misc.c  6 Nov 2005 18:12:12 -0000       1.24
@@ -133,8 +133,12 @@
 
    CFG_ITEM_BOOL(Conf, session.enable_logout_dialog, 1),
    CFG_ITEM_BOOL(Conf, session.enable_reboot_halt, 0),
+   CFG_ITEM_STR(Conf, session.cmd),
+#if ENABLE_OLD_SESSION_HELPERS
    CFG_ITEM_STR(Conf, session.cmd_init),
    CFG_ITEM_STR(Conf, session.cmd_start),
+   CFG_ITEM_STR(Conf, session.cmd_stop),
+#endif
    CFG_ITEM_STR(Conf, session.cmd_reboot),
    CFG_ITEM_STR(Conf, session.cmd_halt),
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/session.c,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -3 -r1.109 -r1.110
--- session.c   30 Oct 2005 19:40:49 -0000      1.109
+++ session.c   6 Nov 2005 18:12:12 -0000       1.110
@@ -835,6 +835,9 @@
       SessionSave(1);
    Real_SaveSnapInfo(0, NULL);
 
+   if (mode != EEXIT_THEME && mode != EEXIT_RESTART)
+      SessionHelper(ESESSION_STOP);
+
    if (disp)
      {
        /* We may get here from HandleXIOError */
@@ -854,7 +857,6 @@
      {
      case EEXIT_EXEC:
        SoundPlay("SOUND_EXIT");
-       SoundPlay("SOUND_WAIT");
        EDisplayClose();
 
        Esnprintf(s, sizeof(s), "exec %s", params);
@@ -1007,3 +1009,55 @@
 
    doSMExit(mode, param);
 }
+
+static void
+SessionRunProg(const char *prog, const char *params)
+{
+   char                buf[4096];
+   const char         *s;
+
+   if (params)
+     {
+       Esnprintf(buf, sizeof(buf), "%s %s", prog, params);
+       s = buf;
+     }
+   else
+     {
+       s = prog;
+     }
+   if (EventDebug(EDBUG_TYPE_SESSION))
+      Eprintf("SessionRunProg: %s\n", s);
+   system(s);
+}
+
+void
+SessionHelper(int when)
+{
+   switch (when)
+     {
+     case ESESSION_INIT:
+       if (Conf.session.cmd)
+          SessionRunProg(Conf.session.cmd, "init");
+#if ENABLE_OLD_SESSION_HELPERS
+       else if (Conf.session.cmd_init)
+          SessionRunProg(Conf.session.cmd_init, NULL);
+#endif
+       break;
+     case ESESSION_START:
+       if (Conf.session.cmd)
+          SessionRunProg(Conf.session.cmd, "start");
+#if ENABLE_OLD_SESSION_HELPERS
+       else if (Conf.session.cmd_start)
+          SessionRunProg(Conf.session.cmd_start, NULL);
+#endif
+       break;
+     case ESESSION_STOP:
+       if (Conf.session.cmd)
+          SessionRunProg(Conf.session.cmd, "stop");
+#if ENABLE_OLD_SESSION_HELPERS
+       else if (Conf.session.cmd_stop)
+          SessionRunProg(Conf.session.cmd_stop, NULL);
+#endif
+       break;
+     }
+}




-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to