E: Fix e_sys wrt Immortal windows. (for ppurka).

NB: Prior to this, if you had an Immortal window and selected
Restart/Exit/Etc the _e_sys_action_current variable was not getting
reset, thus if you tried another Restart/Exit you would always get the
'EEK' dialog and get stuck into an endless loop. Even if you removed
the lock on the window, this would still happen.



SVN revision: 61429
This commit is contained in:
Christopher Michael 2011-07-16 16:53:20 +00:00
parent cfe2544d9f
commit f6e699bbb5
1 changed files with 12 additions and 4 deletions

View File

@ -89,7 +89,7 @@ e_sys_action_possible_get(E_Sys_Action a)
EAPI int
e_sys_action_do(E_Sys_Action a, char *param)
{
int ret;
int ret = 0;
if (_e_sys_action_current != E_SYS_NONE)
{
@ -113,9 +113,12 @@ e_sys_action_do(E_Sys_Action a, char *param)
return 1;
break;
default:
return 0;
break;
}
_e_sys_action_current = a;
if (ret) _e_sys_action_current = a;
else _e_sys_action_current = E_SYS_NONE;
return ret;
}
@ -533,7 +536,10 @@ _e_sys_action_do(E_Sys_Action a, char *param __UNUSED__)
{
case E_SYS_EXIT:
// XXX TODO: check for e_fm_op_registry entries and confirm
if (!e_util_immortal_check()) ecore_main_loop_quit();
if (!e_util_immortal_check())
ecore_main_loop_quit();
else
return 0;
break;
case E_SYS_RESTART:
// XXX TODO: check for e_fm_op_registry entries and confirm
@ -542,6 +548,8 @@ _e_sys_action_do(E_Sys_Action a, char *param __UNUSED__)
restart = 1;
ecore_main_loop_quit();
}
else
return 0;
break;
case E_SYS_EXIT_NOW:
exit(0);