ctrl+n duplicates the current fwin

SVN revision: 39826
This commit is contained in:
Viktor Kojouharov 2009-04-01 08:28:21 +00:00
parent 315df37115
commit e33ba2d5f0
2 changed files with 28 additions and 2 deletions

View File

@ -1974,7 +1974,7 @@ _e_fm2_icon_mime_fdo_get(Evas *evas, const E_Fm2_Icon *ic, const char **type_ret
{
Evas_Object *o;
o = _e_fm2_icon_explicit_get(evas, ic, icon, type_ret);
free(icon);
free((char *) icon);
return o;
}
return NULL;
@ -6792,7 +6792,8 @@ _e_fm2_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
else
_e_fm2_file_delete(obj);
}
else
else if (!evas_key_modifier_is_set(ev->modifiers, "Control") &&
!evas_key_modifier_is_set(ev->modifiers, "Alt"))
{
if (ev->string)
{

View File

@ -82,6 +82,7 @@ static void _e_fwin_selected(void *data, Evas_Object *obj, void *event_info);
static void _e_fwin_selection_change(void *data, Evas_Object *obj, void *event_info);
static void _e_fwin_menu_extend(void *data, Evas_Object *obj, E_Menu *m, E_Fm2_Icon_Info *info);
static void _e_fwin_parent(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_fwin_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info);
static void _e_fwin_cb_menu_extend_start(void *data, Evas_Object *obj, E_Menu *m, E_Fm2_Icon_Info *info);
static void _e_fwin_cb_menu_open(void *data, E_Menu *m, E_Menu_Item *mi);
static void _e_fwin_cb_menu_open_with(void *data, E_Menu *m, E_Menu_Item *mi);
@ -461,6 +462,7 @@ _e_fwin_new(E_Container *con, const char *dev, const char *path)
fwin->fm_obj = o;
_e_fwin_config_set(fwin);
e_fm2_view_flags_set(o, E_FM2_VIEW_DIR_CUSTOM);
evas_object_event_callback_add(o, EVAS_CALLBACK_KEY_DOWN, _e_fwin_cb_key_down, fwin);
evas_object_smart_callback_add(o, "dir_changed",
_e_fwin_changed, fwin);
@ -818,6 +820,29 @@ _e_fwin_parent(void *data, E_Menu *m, E_Menu_Item *mi)
e_fm2_parent_go(data);
}
static void
_e_fwin_cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
Evas_Event_Key_Down *ev;
E_Fwin *fwin;
fwin = data;
ev = event_info;
if (evas_key_modifier_is_set(ev->modifiers, "Control"))
{
if (!strcmp(ev->key, "n"))
{
E_Container *con;
const char *dev, *path;
con = e_container_current_get(e_manager_current_get());
e_fm2_path_get(fwin->fm_obj, &dev, &path);
e_fwin_new(con, dev, path);
return;
}
}
}
static void
_e_fwin_cb_menu_extend_start(void *data, Evas_Object *obj, E_Menu *m, E_Fm2_Icon_Info *info)
{