Cleanup icon up handling

It seems that originally the "selected" event wasn't to be fired on dirs
during single click. This makes it impossible for fwin to open a new
window when single clicking a dir, so some ugly hacks has been added.
"The right fix (tm)" is to always emit "selected", even on dirs, and let
the listener decide what to do with the file.

SVN revision: 54229
This commit is contained in:
Sebastian Dransfeld 2010-11-06 15:15:21 +00:00
parent 889876d851
commit ea2d3ab0eb
1 changed files with 16 additions and 14 deletions

View File

@ -6373,6 +6373,8 @@ _e_fm2_mouse_1_handler(E_Fm2_Icon *ic, int up, void *evas_event)
eu = evas_event;
modifiers = eu->modifiers;
}
if (ed && ic->sd->config->view.single_click_delay)
down_timestamp = ed->timestamp;
if (ic->sd->config->selection.windows_modifiers)
{
@ -6393,6 +6395,19 @@ _e_fm2_mouse_1_handler(E_Fm2_Icon *ic, int up, void *evas_event)
multi_sel = 0;
range_sel = 0;
}
/*
* On mouse up, check if we want to do inplace open
*/
if ((eu) &&
(!multi_sel) &&
(!range_sel) &&
(ic->sd->config->view.single_click) &&
((eu->timestamp - down_timestamp) > ic->sd->config->view.single_click_delay))
{
if (_e_fm2_inplace_open(ic) == 1) return;
}
if (range_sel)
{
const Eina_List *l;
@ -6476,13 +6491,8 @@ _e_fm2_mouse_1_handler(E_Fm2_Icon *ic, int up, void *evas_event)
}
if (sel_change)
evas_object_smart_callback_call(ic->sd->obj, "selection_change", NULL);
if ((!(S_ISDIR(ic->info.statinfo.st_mode)) ||
(ic->sd->config->view.no_subdir_jump)) &&
(ic->sd->config->view.single_click))
if (ic->sd->config->view.single_click)
{
if (ed && ic->sd->config->view.single_click_delay)
down_timestamp = ed->timestamp;
if (eu && (eu->timestamp - down_timestamp) > ic->sd->config->view.single_click_delay)
{
int icon_pos_x = ic->x + ic->sd->x - ic->sd->pos.x;
@ -6560,14 +6570,6 @@ _e_fm2_cb_icon_mouse_up(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSE
ic->drag.dnd = EINA_FALSE;
ic->drag.src = EINA_FALSE;
ic->down_sel = EINA_FALSE;
if ((ic->sd->config->view.single_click) &&
(ic->sd->config->view.single_click_delay == 0) &&
(!evas_key_modifier_is_set(ev->modifiers, "Control")) &&
(!evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
(_e_fm2_inplace_open(ic) == 0) &&
S_ISDIR(ic->info.statinfo.st_mode))
evas_object_smart_callback_call(ic->sd->obj, "selected", NULL);
}
}