diff --git a/src/bin/e_actions.c b/src/bin/e_actions.c index 9698deb69..30a1243a1 100644 --- a/src/bin/e_actions.c +++ b/src/bin/e_actions.c @@ -1623,6 +1623,12 @@ ACT_FN_GO(exit_now) e_sys_action_do(E_SYS_EXIT_NOW, NULL); } +/***************************************************************************/ +ACT_FN_GO(halt_now) +{ + e_sys_action_do(E_SYS_HALT_NOW, NULL); +} + /***************************************************************************/ static E_Dialog *logout_dialog = NULL; @@ -2575,6 +2581,10 @@ e_actions_init(void) e_action_predef_name_set(_("Enlightenment"), _("Exit Immediately"), "exit_now", NULL, NULL, 0); + ACT_GO(halt_now); + e_action_predef_name_set(_("Enlightenment"), _("Shut Down Immediately"), + "halt_now", NULL, NULL, 0); + ACT_GO(halt); e_action_predef_name_set(_("System"), _("Shut Down"), "halt", NULL, NULL, 0); diff --git a/src/bin/e_sys.c b/src/bin/e_sys.c index a2de52cb4..3c680c56c 100644 --- a/src/bin/e_sys.c +++ b/src/bin/e_sys.c @@ -72,6 +72,8 @@ e_sys_action_possible_get(E_Sys_Action a) return 0; case E_SYS_HALT: return _e_sys_can_halt; + case E_SYS_HALT_NOW: + return _e_sys_can_halt; case E_SYS_REBOOT: return _e_sys_can_reboot; case E_SYS_SUSPEND: @@ -102,6 +104,7 @@ e_sys_action_do(E_Sys_Action a, char *param) case E_SYS_LOGOUT: case E_SYS_SUSPEND: case E_SYS_HIBERNATE: + case E_SYS_HALT_NOW: ret = _e_sys_action_do(a, param); break; case E_SYS_HALT: diff --git a/src/bin/e_sys.h b/src/bin/e_sys.h index 4b714b6c9..539334b41 100644 --- a/src/bin/e_sys.h +++ b/src/bin/e_sys.h @@ -13,6 +13,7 @@ enum _E_Sys_Action E_SYS_EXIT_NOW, E_SYS_LOGOUT, E_SYS_HALT, + E_SYS_HALT_NOW, E_SYS_REBOOT, E_SYS_SUSPEND, E_SYS_HIBERNATE