forked from enlightenment/enlightenment
1. remove ld_lib_path from all things e17 executes EXCEPT its own specific
tools. 2. custom screensaver patches SVN revision: 27628
This commit is contained in:
parent
8a3717b412
commit
29b6afd096
9
TODO
9
TODO
|
@ -20,7 +20,6 @@ Some of the things (in very short form) that need to be done to E17...
|
|||
-------------------------------------------------------------------------------
|
||||
|
||||
* fm2 needs a right-click file properties dialog
|
||||
* fm2 needs a way to set custom backgrounds and handle scrolling
|
||||
* fm2 needs to display symlink info on files somehow
|
||||
* fm2 needs to display more than 1 file being dragged (if more than 1 is being
|
||||
dragged)
|
||||
|
@ -29,13 +28,14 @@ Some of the things (in very short form) that need to be done to E17...
|
|||
* fm2 needs a way to use custom icons per dir/file
|
||||
* fm2 needs a way to bypass thumb gen anim on just a unrealize/realize as well
|
||||
as change state instantly if it already was selected
|
||||
* fm2 needs a mime filter
|
||||
* fm2 needs to not unrealize then re-realize on resort/arraneg - keep objects
|
||||
around.
|
||||
* fm2 needs a mime/extension/glob filter
|
||||
* fm2 will pop up tonnes of error dialogs if u try delete a lot of files in a
|
||||
tree you can't delete - fix to make this a dialog with a log etc.
|
||||
* dnd needs to do xdnd properly.
|
||||
* fm2 needs icon views (auto-arrange, snap to grid and free placement), for
|
||||
fwin windows and the desktop
|
||||
* middle mouse on gadgets as a quick move/resize thing?
|
||||
* language packs: need to have a tool to load/setup a language pack (which
|
||||
means .mo compiled files from a .po, an optional font and a config file that
|
||||
specifies the locale and font) and then install the font(s) either as a user
|
||||
|
@ -77,8 +77,6 @@ Some of the things (in very short form) that need to be done to E17...
|
|||
* need to audit, namespace and expand text and color classes
|
||||
* need to specify what is NEEDED from a theme, what is optional (in terms of
|
||||
parts, groups and signals). etc.
|
||||
* winlist should support place for window "screenshot" in list as well as
|
||||
app icon
|
||||
* winlist could divide windows up into blocks - sub-lists within a container
|
||||
per desktop (with stick windows considered to live on the "current" desk
|
||||
when winlist starts)
|
||||
|
@ -91,7 +89,6 @@ Some of the things (in very short form) that need to be done to E17...
|
|||
* desktop flip animations need to allow control over accel/decel and
|
||||
have a better ui - add wobble and controls etc. etc.
|
||||
* internal windows (config dialogs, etc) should re-open after a restart
|
||||
* .order file handling needs some going over, there is at least one bug.
|
||||
]]]
|
||||
|
||||
[[[
|
||||
|
|
|
@ -1226,7 +1226,9 @@ ACT_FN_GO(exec)
|
|||
{
|
||||
Ecore_Exe *exe;
|
||||
|
||||
e_util_library_path_strip();
|
||||
exe = ecore_exe_run(params, NULL);
|
||||
e_util_library_path_restore();
|
||||
e_exehist_add("action/exec", params);
|
||||
if (exe) ecore_exe_free(exe);
|
||||
}
|
||||
|
|
|
@ -478,6 +478,8 @@ e_config_init(void)
|
|||
E_CONFIG_VAL(D, T, desklock_use_timeout, INT);
|
||||
E_CONFIG_VAL(D, T, desklock_timeout, DOUBLE);
|
||||
E_CONFIG_VAL(D, T, desklock_disable_screensaver, INT);
|
||||
E_CONFIG_VAL(D, T, desklock_use_custom_screensaver, INT);
|
||||
E_CONFIG_VAL(D, T, desklock_custom_screensaver_cmd, STR);
|
||||
E_CONFIG_VAL(D, T, display_res_restore, INT);
|
||||
E_CONFIG_VAL(D, T, display_res_width, INT);
|
||||
E_CONFIG_VAL(D, T, display_res_height, INT);
|
||||
|
@ -1282,6 +1284,12 @@ e_config_init(void)
|
|||
e_config->remember_internal_windows = 1;
|
||||
IFCFGEND;
|
||||
|
||||
|
||||
IFCFG(0x00106);
|
||||
e_config->desklock_use_custom_screensaver = 0;
|
||||
e_config->desklock_custom_screensaver_cmd = NULL;
|
||||
IFCFGEND;
|
||||
|
||||
#if 0 /* example of new config */
|
||||
IFCFG(0x0090); /* the version # where this value(s) was introduced */
|
||||
e_config->new_value = 10; /* set the value(s) */
|
||||
|
@ -1366,8 +1374,9 @@ e_config_init(void)
|
|||
E_CONFIG_LIMIT(e_config->desklock_login_box_zone, -2, 1000);
|
||||
E_CONFIG_LIMIT(e_config->desklock_autolock, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->desklock_use_timeout, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->desklock_timeout, 1.0, 600.0);
|
||||
E_CONFIG_LIMIT(e_config->desklock_timeout, 1.0, 5400.0);
|
||||
E_CONFIG_LIMIT(e_config->desklock_disable_screensaver, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->desklock_use_custom_screensaver, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->display_res_restore, 0, 1);
|
||||
E_CONFIG_LIMIT(e_config->display_res_width, 1, 8192);
|
||||
E_CONFIG_LIMIT(e_config->display_res_height, 1, 8192);
|
||||
|
@ -1966,6 +1975,7 @@ _e_config_free(void)
|
|||
if (e_config->wallpaper_import_last_dev) evas_stringshare_del(e_config->wallpaper_import_last_dev);
|
||||
if (e_config->wallpaper_import_last_path) evas_stringshare_del(e_config->wallpaper_import_last_path);
|
||||
if (e_config->theme_default_border_style) evas_stringshare_del(e_config->theme_default_border_style);
|
||||
if (e_config->desklock_custom_screensaver_cmd) evas_stringshare_del(e_config->desklock_custom_screensaver_cmd);
|
||||
E_FREE(e_config);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ typedef Eet_Data_Descriptor E_Config_DD;
|
|||
/* increment this whenever a new set of config values are added but the users
|
||||
* config doesn't need to be wiped - simply new values need to be put in
|
||||
*/
|
||||
#define E_CONFIG_FILE_GENERATION 0x0105
|
||||
#define E_CONFIG_FILE_GENERATION 0x0106
|
||||
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION)
|
||||
|
||||
#define E_EVAS_ENGINE_DEFAULT 0
|
||||
|
@ -231,6 +231,8 @@ struct _E_Config
|
|||
int desklock_use_timeout; // GUI
|
||||
double desklock_timeout; // GUI
|
||||
int desklock_disable_screensaver; // GUI
|
||||
int desklock_use_custom_screensaver; //GUI
|
||||
const char *desklock_custom_screensaver_cmd; // GUI
|
||||
|
||||
int display_res_restore; // GUI
|
||||
int display_res_width; // GUI
|
||||
|
|
|
@ -49,6 +49,8 @@ static E_Zone *last_active_zone = NULL;
|
|||
static Ecore_Event_Handler *_e_desklock_exit_handler = NULL;
|
||||
static pid_t _e_desklock_child_pid = -1;
|
||||
#endif
|
||||
static Ecore_Exe *_e_custom_saver_exe = NULL;
|
||||
static Ecore_Event_Handler *_e_custom_saver_exe_handler = NULL;
|
||||
|
||||
/***********************************************************************/
|
||||
|
||||
|
@ -57,6 +59,7 @@ static int _e_desklock_cb_mouse_down(void *data, int type, void *event);
|
|||
static int _e_desklock_cb_mouse_up(void *data, int type, void *event);
|
||||
static int _e_desklock_cb_mouse_wheel(void *data, int type, void *event);
|
||||
static int _e_desklock_cb_mouse_move(void *data, int type, void *event);
|
||||
static int _e_desklock_cb_custom_saver_exit(void *data, int type, void *event);
|
||||
|
||||
static void _e_desklock_passwd_update();
|
||||
static void _e_desklock_backspace();
|
||||
|
@ -77,6 +80,7 @@ static char *_desklock_auth_get_current_host(void);
|
|||
EAPI int
|
||||
e_desklock_init(void)
|
||||
{
|
||||
|
||||
if (e_config->desklock_disable_screensaver)
|
||||
ecore_x_screensaver_timeout_set(0);
|
||||
else
|
||||
|
@ -85,6 +89,13 @@ e_desklock_init(void)
|
|||
ecore_x_screensaver_timeout_set(e_config->desklock_timeout);
|
||||
}
|
||||
|
||||
/*
|
||||
* Effectively hide the X screensaver yet allow
|
||||
* it to generate the timer events for us.
|
||||
*/
|
||||
ecore_x_screensaver_blank_set(!e_config->desklock_use_custom_screensaver);
|
||||
ecore_x_screensaver_expose_set(!e_config->desklock_use_custom_screensaver);
|
||||
|
||||
if (e_config->desklock_background)
|
||||
e_filereg_register(e_config->desklock_background);
|
||||
|
||||
|
@ -111,6 +122,20 @@ e_desklock_show(void)
|
|||
int zone_counter;
|
||||
int total_zone_num;
|
||||
|
||||
|
||||
if (_e_custom_saver_exe) return 0;
|
||||
|
||||
if (e_config->desklock_use_custom_screensaver)
|
||||
{
|
||||
_e_custom_saver_exe_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
|
||||
_e_desklock_cb_custom_saver_exit,
|
||||
NULL);
|
||||
e_util_library_path_strip();
|
||||
_e_custom_saver_exe = ecore_exe_run(e_config->desklock_custom_screensaver_cmd, NULL);
|
||||
e_util_library_path_restore();
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (edd) return 0;
|
||||
|
||||
#ifdef HAVE_PAM
|
||||
|
@ -323,7 +348,13 @@ e_desklock_hide(void)
|
|||
{
|
||||
E_Desklock_Popup_Data *edp;
|
||||
|
||||
if (!edd) return;
|
||||
if ((!edd) && (!_e_custom_saver_exe)) return;
|
||||
|
||||
if (e_config->desklock_use_custom_screensaver)
|
||||
{
|
||||
_e_custom_saver_exe = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
if (edd->elock_grab_break_wnd)
|
||||
ecore_x_window_show(edd->elock_grab_break_wnd);
|
||||
|
@ -735,3 +766,30 @@ _desklock_auth_get_current_host(void)
|
|||
return strdup("localhost");
|
||||
}
|
||||
#endif
|
||||
|
||||
static int
|
||||
_e_desklock_cb_custom_saver_exit(void *data, int type, void *event)
|
||||
{
|
||||
Ecore_Exe_Event_Del *ev;
|
||||
|
||||
ev = event;
|
||||
if (ev->exe != _e_custom_saver_exe) return 1;
|
||||
|
||||
if (ev->exit_code != 0)
|
||||
{
|
||||
/* do something profound here... like notify someone */
|
||||
}
|
||||
|
||||
/*
|
||||
* Miserable HACK alert!!!
|
||||
* Seems I must reset this. Some reason yet unknown, my
|
||||
* intended values are getting reset!?!
|
||||
*/
|
||||
ecore_x_screensaver_timeout_set(e_config->desklock_timeout);
|
||||
ecore_x_screensaver_blank_set(!e_config->desklock_use_custom_screensaver);
|
||||
ecore_x_screensaver_expose_set(!e_config->desklock_use_custom_screensaver);
|
||||
|
||||
e_desklock_hide();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
#define DEF_DESKLOCK_BACKGROUND "theme_desklock_background"
|
||||
#define DEF_THEME_BACKGROUND "theme_background"
|
||||
|
||||
|
||||
static void *_create_data(E_Config_Dialog *cfd);
|
||||
static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||
static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
|
||||
|
@ -61,6 +60,9 @@ struct _E_Config_Dialog_Data
|
|||
int specific_lb_zone; // local variable
|
||||
int specific_lb_zone_backup; // used to have smart iface
|
||||
|
||||
int use_custom_screensaver;
|
||||
char *custom_screensaver_cmd;
|
||||
|
||||
int zone_count; // local variable;
|
||||
|
||||
int bg_mode; // config
|
||||
|
@ -290,7 +292,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
|||
|
||||
cfdata->autolock = e_config->desklock_autolock;
|
||||
cfdata->use_timeout = e_config->desklock_use_timeout;
|
||||
cfdata->timeout = e_config->desklock_timeout;
|
||||
cfdata->timeout = e_config->desklock_timeout / 60;
|
||||
|
||||
/* should be taken from e_config */
|
||||
//cfdata->login_box_on_zone = -1;
|
||||
|
@ -347,6 +349,10 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
|||
cfdata->auth_method = e_config->desklock_auth_method;
|
||||
#endif
|
||||
|
||||
cfdata->use_custom_screensaver = e_config->desklock_use_custom_screensaver;
|
||||
if (e_config->desklock_custom_screensaver_cmd)
|
||||
cfdata->custom_screensaver_cmd = strdup(e_config->desklock_custom_screensaver_cmd);
|
||||
|
||||
//vertical_lb_align = e_config->desklock_login
|
||||
}
|
||||
|
||||
|
@ -385,14 +391,16 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
e_config->desklock_personal_passwd = evas_stringshare_add(cfdata->desklock_passwd_cp);
|
||||
e_config->desklock_autolock = cfdata->autolock;
|
||||
e_config->desklock_use_timeout = cfdata->use_timeout;
|
||||
e_config->desklock_timeout = cfdata->timeout;
|
||||
e_config->desklock_timeout = cfdata->timeout * 60;
|
||||
#ifdef HAVE_PAM
|
||||
e_config->desklock_auth_method = cfdata->auth_method;
|
||||
#endif
|
||||
if (e_config->desklock_use_timeout)
|
||||
{
|
||||
ecore_x_screensaver_timeout_set(e_config->desklock_timeout);
|
||||
}
|
||||
ecore_x_screensaver_timeout_set(e_config->desklock_timeout);
|
||||
|
||||
ecore_x_screensaver_blank_set(!e_config->desklock_use_custom_screensaver);
|
||||
ecore_x_screensaver_expose_set(!e_config->desklock_use_custom_screensaver);
|
||||
|
||||
e_config_save_queue();
|
||||
return 1;
|
||||
}
|
||||
|
@ -417,8 +425,8 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
|
|||
ob = e_widget_label_add(evas, _("Time until screensaver starts"));
|
||||
e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f seconds"),
|
||||
1.0, 600.0,
|
||||
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"),
|
||||
1.0, 90.0,
|
||||
1.0, 0, &(cfdata->timeout), NULL,
|
||||
200);
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
|
@ -467,7 +475,7 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
|
||||
e_config->desklock_autolock = cfdata->autolock;
|
||||
e_config->desklock_use_timeout = cfdata->use_timeout;
|
||||
e_config->desklock_timeout = cfdata->timeout;
|
||||
e_config->desklock_timeout = cfdata->timeout * 60;
|
||||
#ifdef HAVE_PAM
|
||||
e_config->desklock_auth_method = cfdata->auth_method;
|
||||
#endif
|
||||
|
@ -475,6 +483,17 @@ _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
if (e_config->desklock_use_timeout)
|
||||
ecore_x_screensaver_timeout_set(e_config->desklock_timeout);
|
||||
|
||||
e_config->desklock_use_custom_screensaver = cfdata->use_custom_screensaver;
|
||||
if (cfdata->custom_screensaver_cmd)
|
||||
{
|
||||
if (e_config->desklock_custom_screensaver_cmd)
|
||||
evas_stringshare_del(e_config->desklock_custom_screensaver_cmd);
|
||||
e_config->desklock_custom_screensaver_cmd = evas_stringshare_add(cfdata->custom_screensaver_cmd);
|
||||
}
|
||||
|
||||
ecore_x_screensaver_blank_set(!e_config->desklock_use_custom_screensaver);
|
||||
ecore_x_screensaver_expose_set(!e_config->desklock_use_custom_screensaver);
|
||||
|
||||
e_config_save_queue();
|
||||
return 1;
|
||||
}
|
||||
|
@ -713,7 +732,7 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
|||
|
||||
e_widget_disabled_set(of, !ecore_x_screensaver_event_available_get());
|
||||
|
||||
ob = e_widget_check_add(evas, _("Enable screensaver"), &(cfdata->use_timeout));
|
||||
ob = e_widget_check_add(evas, _("Enable X screensaver"), &(cfdata->use_timeout));
|
||||
e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
|
||||
|
@ -724,8 +743,8 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
|||
ob = e_widget_label_add(evas, _("Time until screensaver starts"));
|
||||
e_widget_disabled_set(ob, !ecore_x_screensaver_event_available_get());
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f seconds"),
|
||||
1.0, 600.0,
|
||||
ob = e_widget_slider_add(evas, 1, 0, _("%1.0f minutes"),
|
||||
1.0, 90.0,
|
||||
1.0, 0, &(cfdata->timeout), NULL,
|
||||
100);
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
|
@ -735,6 +754,23 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
|
|||
e_widget_table_object_append(ot, of, 1, 2, 1, 1 ,1 ,1 ,1 ,1);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Allow Custom Screen Saver
|
||||
* Useful, for example, for those of us who prefer
|
||||
* to use things like xscreensaver, kscreesaver, etc...
|
||||
*/
|
||||
of = e_widget_framelist_add(evas, _("Custom Screensaver"), 0);
|
||||
ob = e_widget_check_add(evas, _("Use custom screensaver/desklock"),
|
||||
&(cfdata->use_custom_screensaver));
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
ob = e_widget_entry_add(evas, &(cfdata->custom_screensaver_cmd));
|
||||
e_widget_framelist_object_append(of, ob);
|
||||
#ifdef HAVE_PAM
|
||||
e_widget_table_object_append(ot, of, 0, 4, 2, 1, 1, 1, 1, 1);
|
||||
#else
|
||||
e_widget_table_object_append(ot, of, 0, 4, 2, 1, 1, 1, 1, 1);
|
||||
#endif
|
||||
|
||||
e_dialog_resizable_set(cfd->dia, 0);
|
||||
return ot;
|
||||
}
|
||||
|
|
|
@ -352,7 +352,9 @@ e_intl_input_method_set(const char *imc_path)
|
|||
|
||||
if (E_EXE_IS_VALID(imc->e_im_exec))
|
||||
{
|
||||
e_util_library_path_strip();
|
||||
_e_intl_input_method_exec = ecore_exe_run(imc->e_im_exec, NULL);
|
||||
e_util_library_path_restore();
|
||||
ecore_exe_tag_set(_e_intl_input_method_exec,"E/im_exec");
|
||||
|
||||
if ( !_e_intl_input_method_exec ||
|
||||
|
|
|
@ -7816,3 +7816,83 @@ break;
|
|||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_SET
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
OP("-desklock-use-custom-screensaver-set", 1, "Set whether a custom screensaver will be utilized", 0, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
REQ_INT(atoi(params[0]), HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
START_INT(policy, HDL);
|
||||
e_config->desklock_use_custom_screensaver = policy;
|
||||
E_CONFIG_LIMIT(e_config->desklock_use_custom_screensaver, 0, 1);
|
||||
SAVE;
|
||||
END_INT;
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
OP("-desklock-use-custom-screensaver-get", 0, "Get whether a custom screen saver is being used", 1, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
REQ_NULL(HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
SEND_INT(e_config->desklock_use_custom_screensaver, E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET_REPLY, HDL);
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET_REPLY
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
#elif (TYPE == E_WM_IN)
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
START_INT(val, HDL);
|
||||
printf("REPLY: POLICY=%d\n", val);
|
||||
END_INT;
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_SET
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
OP("-desklock-custom-screensaver-cmd-set", 1, "Set the current custom screensaver command to OPT1", 0, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
REQ_STRING(params[0], HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
STRING(s, HDL);
|
||||
if (e_config->desklock_custom_screensaver_cmd)
|
||||
evas_stringshare_del(e_config->desklock_custom_screensaver_cmd);
|
||||
e_config->desklock_custom_screensaver_cmd = evas_stringshare_add(s);
|
||||
END_STRING(s);
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_GET
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
OP("-desklock-custom-screensaver-cmd-get", 0, "Get the current custom screensaver command", 1, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
REQ_NULL(HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
SEND_STRING(e_config->desklock_custom_screensaver_cmd, E_IPC_OP_PROFILE_GET_REPLY, HDL);
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
#define HDL E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_GET_REPLY
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
#elif (TYPE == E_WM_IN)
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
STRING(s, HDL);
|
||||
printf("REPLY: \"%s\"\n", s);
|
||||
END_STRING(s);
|
||||
#endif
|
||||
#undef HDL
|
||||
|
|
|
@ -413,3 +413,11 @@
|
|||
#define E_IPC_OP_HIBERNATE 376
|
||||
#define E_IPC_OP_REBOOT 377
|
||||
#define E_IPC_OP_SUSPEND 378
|
||||
|
||||
#define E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_SET 379
|
||||
#define E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET 380
|
||||
#define E_IPC_OP_DESKLOCK_USE_CUSTOM_SCREENSAVER_GET_REPLY 381
|
||||
#define E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_SET 382
|
||||
#define E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_GET 383
|
||||
#define E_IPC_OP_DESKLOCK_CUSTOM_SCREENSAVER_CMD_GET_REPLY 384
|
||||
|
||||
|
|
|
@ -754,7 +754,8 @@ _e_manager_cb_screensaver_notify(void *data, int ev_type __UNUSED__, void *ev)
|
|||
|
||||
if (e->on)
|
||||
{
|
||||
if (e_config->desklock_autolock) e_desklock_show();
|
||||
if ((e_config->desklock_autolock) || (e_config->desklock_use_custom_screensaver))
|
||||
e_desklock_show();
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -229,7 +229,9 @@ e_util_head_exec(int head, const char *cmd)
|
|||
strcpy(buf, penv_display);
|
||||
|
||||
ok = 1;
|
||||
e_util_library_path_strip();
|
||||
exe = ecore_exe_run(cmd, NULL);
|
||||
e_util_library_path_restore();
|
||||
if (!exe)
|
||||
{
|
||||
e_util_dialog_show(_("Run Error"),
|
||||
|
@ -780,6 +782,32 @@ e_util_file_time_get(time_t ftime)
|
|||
return s;
|
||||
}
|
||||
|
||||
static char *prev_ld_library_path = NULL;
|
||||
|
||||
EAPI void
|
||||
e_util_library_path_strip(void)
|
||||
{
|
||||
char *p, *p2;
|
||||
|
||||
p = getenv("LD_LIBRARY_PATH");
|
||||
E_FREE(prev_ld_library_path);
|
||||
if (p)
|
||||
{
|
||||
prev_ld_library_path = strdup(p);
|
||||
p2 = strchr(p, ':');
|
||||
if (p2) p2++;
|
||||
e_util_env_set("LD_LIBRARY_PATH", p2);
|
||||
}
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_util_library_path_restore(void)
|
||||
{
|
||||
if (!prev_ld_library_path) return;
|
||||
e_util_env_set("LD_LIBRARY_PATH", prev_ld_library_path);
|
||||
E_FREE(prev_ld_library_path);
|
||||
}
|
||||
|
||||
/* local subsystem functions */
|
||||
static void
|
||||
_e_util_container_fake_mouse_up_cb(void *data)
|
||||
|
|
|
@ -47,6 +47,8 @@ EAPI int e_util_icon_save(Ecore_X_Icon *icon, const char *filename);
|
|||
EAPI char *e_util_shell_env_path_eval(char *path);
|
||||
EAPI char *e_util_size_string_get(off_t size);
|
||||
EAPI char *e_util_file_time_get(time_t ftime);
|
||||
EAPI void e_util_library_path_strip(void);
|
||||
EAPI void e_util_library_path_restore(void);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue