parent
78192f5973
commit
edbe48cda4
19
TODO
19
TODO
|
@ -44,6 +44,7 @@ Some of the things (in very short form) that need to be done to E17...
|
|||
ESSENTIAL FEATURES
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
* be able to set window to skip window list (and remember this)
|
||||
* emit signal to submenu entries if they have a submenu shown for them or not
|
||||
* add window placement options like place at pointer
|
||||
* shaded windows should not allow border changes by the user
|
||||
|
@ -86,9 +87,9 @@ Some of the things (in very short form) that need to be done to E17...
|
|||
* break out ipc to set names for desktops (and get names/list them)
|
||||
* some sort of gui display of a desktop name (in the pager?)
|
||||
* window icons should be able to be chosen if e eapp icon overrides netwm
|
||||
icon or the other way around.
|
||||
icon or the other way around (and remember this).
|
||||
* transients should have option to always follow parent
|
||||
(move/resize/raise/lower)
|
||||
(move/resize/raise/lower) (and remember this).
|
||||
* actions to make current zone different (warp mouse to there)
|
||||
* actions to make the current container different
|
||||
* titlebar/border expansion/gadget panel for modules to put window widgets in
|
||||
|
@ -128,22 +129,12 @@ Some of the things (in very short form) that need to be done to E17...
|
|||
* make xrandr support get rotation and store it
|
||||
* add separate app menu bars at top of screen support
|
||||
* add really nice "about" box with theme, authors credits list etc etc.
|
||||
* "immortal" windows (e will not allow that window to be closed or will
|
||||
refuse to exit as long as the immortal flags is set until it is unset to
|
||||
stop users from doing silly things like logging out while important stuff
|
||||
is happening in that window -a menu option for this woudl be nice)
|
||||
* need to be able to remember client positons/etc.
|
||||
* with remember need to be able lock in attributes so the app (or user or both)
|
||||
cannot change them (eg this window is a fixed size and location - app cannot
|
||||
ask for a new size or location)
|
||||
* gui config tools for bg's, keybindings, etc. etc. etc.
|
||||
* "control panel" app to launch the gui config tools
|
||||
* make it possible to disable border buttons/actions (tell theme what is
|
||||
disabled)
|
||||
* modules need config executables with proper widgets (sliders, check boxes,
|
||||
radio etc. not massive menus)
|
||||
* remove module config menus (make them part of the module control panel and
|
||||
as separate executables)
|
||||
* modules need config dialogs instead of long winded menus
|
||||
* remove module config menus (make them part of the module control panel etc.)
|
||||
]]]
|
||||
|
||||
[[[
|
||||
|
|
|
@ -1878,6 +1878,22 @@ e_border_resize_cancel(void)
|
|||
}
|
||||
}
|
||||
|
||||
Evas_List *
|
||||
e_border_immortal_windows_get(void)
|
||||
{
|
||||
Evas_List *list = NULL, *l;
|
||||
|
||||
for (l = borders; l; l = l->next)
|
||||
{
|
||||
E_Border *bd;
|
||||
|
||||
bd = l->data;
|
||||
if (bd->lock_life)
|
||||
list = evas_list_append(list, bd);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/* local subsystem functions */
|
||||
static void
|
||||
_e_border_free(E_Border *bd)
|
||||
|
@ -5532,7 +5548,7 @@ _e_border_menu_show(E_Border *bd, Evas_Coord x, Evas_Coord y, int key)
|
|||
NEW_LOCK_MI(_("Close"), lock_close);
|
||||
/* NEW_LOCK_MI(_("Focus In"), lock_focus_in);*/
|
||||
/* NEW_LOCK_MI(_("Focus Out"), lock_focus_out);*/
|
||||
/* NEW_LOCK_MI(_("Lifespan"), lock_life);*/
|
||||
NEW_LOCK_MI(_("Lifespan"), lock_life);
|
||||
|
||||
m = e_menu_new();
|
||||
bd->border_remember_menu = m;
|
||||
|
|
|
@ -511,6 +511,7 @@ EAPI Evas_List *e_border_lost_windows_get(E_Zone *zone);
|
|||
EAPI void e_border_ping(E_Border *bd);
|
||||
EAPI void e_border_move_cancel(void);
|
||||
EAPI void e_border_resize_cancel(void);
|
||||
EAPI Evas_List *e_border_immortal_windows_get(void);
|
||||
|
||||
extern EAPI int E_EVENT_BORDER_RESIZE;
|
||||
extern EAPI int E_EVENT_BORDER_MOVE;
|
||||
|
|
|
@ -331,7 +331,7 @@ _e_int_menus_main_restart(void *data, E_Menu *m, E_Menu_Item *mi)
|
|||
static void
|
||||
_e_int_menus_main_exit(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||
{
|
||||
ecore_main_loop_quit();
|
||||
if (!e_util_immortal_check()) ecore_main_loop_quit();
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -1028,7 +1028,7 @@ break;
|
|||
REQ_NULL(HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
GENERIC(HDL);
|
||||
ecore_main_loop_quit();
|
||||
if (!e_util_immortal_check()) ecore_main_loop_quit();
|
||||
END_GENERIC();
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
|
|
|
@ -923,7 +923,7 @@ static int
|
|||
_e_main_cb_signal_exit(void *data __UNUSED__, int ev_type __UNUSED__, void *ev __UNUSED__)
|
||||
{
|
||||
/* called on ctrl-c, kill (pid) (also SIGINT, SIGTERM and SIGQIT) */
|
||||
ecore_main_loop_quit();
|
||||
if (!e_util_immortal_check()) ecore_main_loop_quit();
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -235,3 +235,26 @@ e_util_both_str_empty(char *s1, char *s2)
|
|||
if (empty == 2) return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
e_util_immortal_check(void)
|
||||
{
|
||||
Evas_List *wins;
|
||||
|
||||
wins = e_border_immortal_windows_get();
|
||||
if (wins)
|
||||
{
|
||||
e_error_dialog_show(_("Cannot exit becaose of immortal windows."),
|
||||
_("Some windows are left with still around with\n"
|
||||
"the Lifespan lock enabled. This means that\n"
|
||||
"Enlightenment will not allow itself to exit\n"
|
||||
"until these windows have been closed or have\n"
|
||||
"the lifespan lock removed.\n"));
|
||||
/* FIXME: should really display a list of these lifespan locked */
|
||||
/* windows in a dialog and let the user disable their locks in */
|
||||
/* this dialog */
|
||||
evas_list_free(wins);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ EAPI E_Zone *e_util_container_zone_number_get(int con_num, int zone_num);
|
|||
EAPI int e_util_head_exec(int head, char *cmd);
|
||||
EAPI int e_util_strcmp(char *s1, char *s2);
|
||||
EAPI int e_util_both_str_empty(char *s1, char *s2);
|
||||
|
||||
EAPI int e_util_immortal_check(void);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue