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