Am Donnerstag, den 05.01.2006, 00:39 +0200 schrieb Hisham Mardam Bey: 
> On 1/4/06, mista <[EMAIL PROTECTED]> wrote:
> > >
> > ok, the other thing I realized is that a greater TILE_SIZE solves the
> > problem that,
> > if you scroll up with keys, the viewport sometimes get not updated and
> > the selected icon is then not more visible.
> >
> 
> we will have to look into this in detail.
> 
ok, but don´t forget
> >
> > -usability changes, like having dirs shown first,
> >
> 
> can you turn this into an option or a sort mode?
> 
sure.

> > renaming can be applied with enter and denied with escape,
> >
> 
> good.
> 
> > icon-menu has a submenu with eaps(and their respective icons) that can
> > open this filetype, this gets only generated once for each type, the
> > first time the menu shows up and is afterwards hashed.
> >
> 
> good, we will have to integrate it into efm's mime system.
> 
for now efm's mimesystem looks like a lot strcmp(strrchr()). can we add
an element  
char *mime in E_Fm_File and a function to check if E_Fm_Assoc_App
matches with a file? 

> for now, we do not want something that is efl-wide. we just want a
> part of efm's configs to map extentions to application names. once
> thats done and other bugs are ironed out, we can talk to Chaos and
> others and try to get something working across all of the EFL.
> 

ok, i keep my idea for later 

> > scroll with band-selection and remember selected files that are not more
> > visible. I had to change icon_canvas, so that icon_pack return the
> > coordinates where the icon is placed and let selections_rect_add work
> > with these coords.
> >
> 
> good.

I can only do this if icon_pack returns something from which i can get
the coordinates where on the canvas th icon is located. Currently I let
it return just the coordinates.  

> 
> > dnd works for single files(to drop files into other apps I put an ugly
> > sleep(1) in e_drag_end).
> > I have the problem, that the e_dnd_cb_mouse_up still gets called after
> > the drop is done. Is this a known bug?
> >
> 
> I am not sure about this, maybe Chaos can give in some input about
> this as he has also done XDND using ecore_x?
> 
> > -logical grouping changes in key_down_cb and key_select_-functions,
> > which reduces the size and is much better to read, as I think. for
> > example in key_down_cb is one section for each state typebuf_shown,
> > _not_shown and renaming.
> > I attached a snippet of the key_select functions, as they solve the
> > problem of flickering selections if one is already at the end in that
> > direction.
> >
> 
> good.
> 
Sorry,the snippet was only matching to my version of e. Today i downloaded a 
brand
new clean e source to work on. 

> 
> > - and some code convenience changes like wrapping the often used
> >    ext = strrchr(file->name, '.');
> >    if (!ext) return 0;
> >    if (strcasecmp(ext, ".eap"))
> >      return 0;
> > with: e_fm_file_has_mime(file,"eap")
> >
> 
> good.
> 
> > One extra functionality that is working is mime lookup via libmagic,
> > this is also comfortable for files without extension, but if one
> > extension is recognized it gets hashed - so you just need to add the
> > mimetypes manually if the type could not be found by libmagic or the
> > found one is not to your liking.
> s>
> 
> this is nice, but does this require that E links against libmagic? I
> believe so, and hence we cant include it in Efm right now.
> 
ok, i thought so. 

> >
> > if this information can be used by other e-applications then this is for
> > sure a better solution.
> 
> refer to my comment above about this subject.
> 
> > Though my version allows easy reuse of mimetype definitions
> > in .desktop-files, as  e17genmenu can be tweaked with little effort to
> > put this information in the eap.
> > What about reading the information once from the eap to store them in
> > the eet-config?
> >
> Can you elaborate please?
> 
> 

I thought it would be good to have the mimetypes stored in the eap,
because every application that shows/uses this eap has directly access
to the mime information. That would make it for example possible that
ibar or engage know when a file is dropped on an eap if the file can be
opened with it. If an Application like efm creates a new mime to
application assignment and stores them in an eaps, then  this
information can be reused by other apps very simple. 

As far as I know e17genmenu should become the standard app to create
eap-sets. The data it uses to create eaps comes from desktop-files,
which include often a list of mimetypes. My point, is that we should use
that list and not write every mimetype for every app by hand. 

For now i changed my own ugly eap generator to store this list in the
comments field of the eap. when efm starts it go through the global eap
list and generates a list to lookup an application by mimetype. then,
when an icon-menu gets opened it goes through the list to lookup
suitable applications, which then get shown in a submenu.

is this what you asked for?



> All the items marked with "good" seem worthy of inclusion with-in Efm.
> Could you port them to work with-in Efm and generate a patch for
> review?
> 

I don´t know how to make patches against a cvs-tree. Can you give me a list of 
commands you are using? 
Have you rules for identation? 
When I apply my local patch the identation looks completly messed up. Should I 
then 
make two patches, one to delete the old part and a second to fill in the new?   
the attached patch are the corrected key select functions,
more to follow when i know how its  done right (my diff dont allow the -3 
option???)

regards,
jeff


p.s. we should use a different mail subject this is mostly off topic

 



--- e_fileman_smart.c-old       2006-01-05 23:13:26.000000000 +0000
+++ e_fileman_smart.c   2006-01-05 23:15:00.000000000 +0000
@@ -2640,300 +2640,6 @@
      }      
 }
 
-static void
-_e_fm_icon_select_up(E_Fm_Smart_Data *sd)
-{
-   Evas_List *l;
-   
-   if(sd->selection.current.ptr)
-     {
-       E_Fm_Icon *icon;
-       Evas_Coord x, y, x2, y2;
-       
-       l = sd->selection.current.ptr;
-       icon = l->data;
-       evas_object_geometry_get(icon->icon_obj, &x, &y, NULL, NULL);
-       x2 = x + 1;
-       l = l->prev;
-       while(l && x != x2)
-         {
-            icon = l->data;
-            evas_object_geometry_get(icon->icon_obj, &x2, &y2, NULL, NULL);
-            if (evas_key_modifier_is_set(evas_key_modifier_get(sd->evas), 
"Control"))
-              {
-                 if(icon->state.selected)
-                   {
-                      _e_fm_selections_del(l->data);
-                      _e_fm_selections_current_set(l->data, l);
-                   }
-                 else
-                   _e_fm_selections_add(l->data, l);
-              }              
-            l = l->prev;
-         }
-       if(l && !evas_key_modifier_is_set(evas_key_modifier_get(sd->evas), 
"Control"))
-         {
-            if(l->next) l = l->next;
-            if(!l) return;
-            _e_fm_selections_clear(sd);
-            _e_fm_selections_add(l->data, l);
-         }
-       else if(!l)
-         {
-            if(!evas_key_modifier_is_set(evas_key_modifier_get(sd->evas), 
"Control"))
-              _e_fm_selections_clear(sd);
-              _e_fm_selections_add(sd->files->data, sd->files);           
-         }             
-       if(l)
-         {
-            E_Fm_Icon *icon;             
-            Evas_Coord x, y, w, h;
-            icon = l->data;
-            evas_object_geometry_get(icon->icon_obj, &x, &y, &w, &h);
-            if(!E_CONTAINS(sd->x, sd->y, sd->w, sd->h, x, y, w, h))
-              {
-                 E_Event_Fm_Reconfigure *ev;
-                 
-                 ev = E_NEW(E_Event_Fm_Reconfigure, 1);
-                 if (ev)
-                   {                       
-                      ev->object = sd->object;
-                      ev->x = sd->x;
-                      ev->y = sd->child.y - (sd->y - (y - 
sd->icon_info.y_space));
-                      ev->w = sd->w;
-                      ev->h = sd->h;
-                      ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, NULL);
-                   }
-              }
-         }
-     }
-   else
-     _e_fm_selections_add(sd->files->data, sd->files);   
-}
-
-static void
-_e_fm_icon_select_down(E_Fm_Smart_Data *sd)
-{
-   Evas_List *l;
-      
-   if(sd->selection.current.ptr)
-     {
-       E_Fm_Icon *icon;
-       Evas_Coord x, y, x2, y2;
-       
-       l = sd->selection.current.ptr;
-       icon = l->data;
-       evas_object_geometry_get(icon->icon_obj, &x, &y, NULL, NULL);
-       x2 = x + 1;
-       l = l->next;
-       while(l && x != x2)
-         {
-            icon = l->data;
-            evas_object_geometry_get(icon->icon_obj, &x2, &y2, NULL, NULL);
-            if (evas_key_modifier_is_set(evas_key_modifier_get(sd->evas), 
"Control"))
-              {
-                 if(icon->state.selected)
-                   {
-                      _e_fm_selections_del(l->data);
-                      _e_fm_selections_current_set(l->data, l);
-                   }
-                 else
-                   _e_fm_selections_add(l->data, l);
-              }              
-            l = l->next;
-         }
-       if(l && !evas_key_modifier_is_set(evas_key_modifier_get(sd->evas), 
"Control"))
-         {
-            if(l->prev) l = l->prev;
-            if(!l) return;
-            _e_fm_selections_clear(sd);
-            _e_fm_selections_add(l->data, l);
-         }
-       else if(!l)
-         {
-            if(!evas_key_modifier_is_set(evas_key_modifier_get(sd->evas), 
"Control"))
-              _e_fm_selections_clear(sd);
-            _e_fm_selections_add((evas_list_last(sd->files))->data, 
evas_list_last(sd->files));
-         }
-       if(l)
-         {
-            E_Fm_Icon *icon;             
-            Evas_Coord x, y, w, h;
-            
-            icon = l->data;
-            evas_object_geometry_get(icon->icon_obj, &x, &y, &w, &h);
-            if(!E_CONTAINS(sd->x, sd->y, sd->w, sd->h, x, y, w, h))
-              {
-                 E_Event_Fm_Reconfigure *ev;
-                 ev = E_NEW(E_Event_Fm_Reconfigure, 1);
-                 if (ev)
-                   {                       
-                      ev->object = sd->object;
-                      ev->x = sd->x;
-                      ev->y = sd->child.y + y + h + sd->icon_info.y_space - 
(sd->y + sd->h);
-                      ev->w = sd->w;
-                      ev->h = sd->h;
-                      ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, NULL);
-                   }
-              }
-         }     
-     }
-   else
-     _e_fm_selections_add(sd->files->data, sd->files);
-}
-
-static void
-_e_fm_icon_select_left(E_Fm_Smart_Data *sd)
-{
-   Evas_List *prev;
-   
-   if(sd->selection.current.ptr)
-     {
-       if(sd->selection.current.ptr->prev)
-         {
-            prev = sd->selection.current.ptr->prev;
-            if (evas_key_modifier_is_set(evas_key_modifier_get(sd->evas), 
"Control"))
-              {
-                 E_Fm_Icon *icon;
-                 
-                 icon = prev->data;
-                 if(icon->state.selected)
-                   {
-                      _e_fm_selections_del(prev->data);
-                      _e_fm_selections_current_set(prev->data, prev);
-                   }
-                 else                 
-                   _e_fm_selections_add(prev->data, prev);
-              }
-            else
-              {
-                 _e_fm_selections_clear(sd);
-                 _e_fm_selections_add(prev->data, prev);
-              }
-              {
-                 E_Fm_Icon *icon;                
-                 Evas_Coord x, y, w, h;
-                 icon = prev->data;
-                 evas_object_geometry_get(icon->icon_obj, &x, &y, &w, &h);
-                 if(!E_CONTAINS(sd->x, sd->y, sd->w, sd->h, x, y, w, h))
-                   {
-                      E_Event_Fm_Reconfigure *ev;
-                      
-                      ev = E_NEW(E_Event_Fm_Reconfigure, 1);
-                      if (ev)
-                        {                          
-                           ev->object = sd->object;
-                           ev->x = sd->x;
-                           ev->y = sd->child.y - (sd->y - (y - 
sd->icon_info.y_space));
-                           ev->w = sd->w;
-                           ev->h = sd->h;
-                           ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, 
NULL);
-                        }
-                   }
-              }
-         }
-     }
-   else
-     _e_fm_selections_add(sd->files->data, sd->files);   
-}
-
-static void
-_e_fm_icon_select_right(E_Fm_Smart_Data *sd)
-{
-   Evas_List *next;
-   
-   if (sd->selection.current.ptr)
-     {
-       if (sd->selection.current.ptr->next)
-         {
-            next = sd->selection.current.ptr->next;
-            if (evas_key_modifier_is_set(evas_key_modifier_get(sd->evas), 
"Control"))
-              {
-                 E_Fm_Icon *icon;
-
-                 icon = next->data;
-                 if (icon->state.selected)
-                   {                 
-                      _e_fm_selections_del(next->data);
-                      _e_fm_selections_current_set(next->data, next);
-                   }
-                 else                 
-                   _e_fm_selections_add(next->data, next);
-              }
-            else
-              {
-                 _e_fm_selections_clear(sd);
-                 _e_fm_selections_add(next->data, next);
-              }             
-              {
-                 E_Fm_Icon *icon;                
-                 Evas_Coord x, y, w, h;
-                 icon = next->data;
-                 evas_object_geometry_get(icon->icon_obj, &x, &y, &w, &h);
-                 if (!E_CONTAINS(sd->x, sd->y, sd->w, sd->h, x, y, w, h))
-                   {
-                      E_Event_Fm_Reconfigure *ev;
-
-                      ev = E_NEW(E_Event_Fm_Reconfigure, 1);
-                      if (ev)
-                        {                          
-                           ev->object = sd->object;
-                           ev->x = sd->x;
-                           ev->y = sd->child.y + y + h + sd->icon_info.y_space 
- (sd->y + sd->h);
-                           ev->w = sd->w;
-                           ev->h = sd->h;
-                           ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, 
NULL);
-                        }
-                   }
-              }
-         }
-     }
-   else
-     _e_fm_selections_add(sd->files->data, sd->files);
-}
-
-static void
-_e_fm_icon_run(E_Fm_Smart_Data *sd)
-{
-   E_Fm_Icon *icon;
-
-   if (sd->selection.current.ptr)
-     {
-       icon = sd->selection.current.file;
-       if (icon->file->type == E_FM_FILE_TYPE_DIRECTORY)
-         {          
-            char *fullname;
-
-            if (!strcmp(icon->file->name, ".."))
-              {
-                 fullname = _e_fm_dir_pop(icon->sd->dir);
-              }
-            else
-              {
-                 fullname = strdup(icon->file->path);
-              }
-            if (fullname)
-              {
-                 if (icon->sd->win)
-                   e_win_title_set(icon->sd->win, fullname);
-                 _e_fm_dir_set(icon->sd, fullname);
-                 free(fullname);
-              }
-         }
-       else if (icon->file->type == E_FM_FILE_TYPE_FILE)
-         {          
-            if (icon->sd->is_selector)
-              {
-                 _e_fm_selector_send_file(icon);
-                 return;
-              }
-
-            if ((!e_fm_file_assoc_exec(icon->file)) &&
-                (e_fm_file_can_exec(icon->file)))
-              e_fm_file_exec(icon->file);
-         }     
-     }
-}
 
 static void
 _e_fm_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
--- e_fileman_smart.c-old2      2006-01-05 23:15:00.000000000 +0000
+++ e_fileman_smart.c   2006-01-05 17:14:22.000000000 +0000
@@ -2641,6 +2641,296 @@
 }
 
 
+
+
+
+
+static void
+_e_fm_icon_select_up(E_Fm_Smart_Data *sd)
+{
+       Evas_List *l;
+       E_Fm_Icon *icon;
+       
+  if(!sd->selection.current.ptr)
+   _e_fm_selections_add(sd->files->data, sd->files); 
+  else 
+  {
+       if(sd->selection.current.ptr->prev) /* are we already at the beginning? 
*/
+               {
+                       Evas_Coord x, x2, y, w, h;
+               
+                       l = sd->selection.current.ptr;
+                       icon = l->data;
+                       evas_object_geometry_get(icon->icon_obj, &x, NULL, 
NULL, NULL);
+                       x2 = x + 1;
+                       
+                       if 
(!evas_key_modifier_is_set(evas_key_modifier_get(sd->evas), "Control"))
+                       {
+                               while(l->prev && (x != x2))
+                       {
+                               l = l->prev;
+                               icon = l->data;
+                       evas_object_geometry_get(icon->icon_obj, &x2, NULL, 
NULL, NULL);       
+                                 
+                               }
+                               _e_fm_selections_clear(sd);
+                   _e_fm_selections_add(l->data, l);    
+                                       
+                       }
+                       else /* Control modifier set */
+                       {
+                               while(l->prev && (x != x2))
+                       {
+                               l = l->prev;
+                               icon = l->data;
+                       evas_object_geometry_get(icon->icon_obj, &x2, NULL, 
NULL, NULL);
+                               
+                               if(icon->state.selected)
+                           {
+                               _e_fm_selections_del(l->data);
+                               _e_fm_selections_current_set(l->data, l);
+                           }
+                               else
+                               _e_fm_selections_add(l->data, l);         
+                       }
+                       }
+                 evas_object_geometry_get(icon->icon_obj, &x, &y, &w, &h);
+                 if(!E_CONTAINS(sd->x, sd->y, sd->w, sd->h, x, y, w, h))
+                 {
+                               E_Event_Fm_Reconfigure *ev;
+                         
+                               ev = E_NEW(E_Event_Fm_Reconfigure, 1);
+                               if (ev)
+                               {                           
+                              ev->object = sd->object;
+                              ev->x = sd->x;
+                              ev->y = sd->child.y - (sd->y - (y - 
sd->icon_info.y_space));
+                              ev->w = sd->w;
+                              ev->h = sd->h;
+                              ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, 
NULL, NULL);
+                         }
+                 }
+               }
+  } 
+}
+
+
+static void
+_e_fm_icon_select_down(E_Fm_Smart_Data *sd)
+{
+       Evas_List *l;
+   
+  if(!sd->selection.current.ptr)
+   _e_fm_selections_add(sd->files->data, sd->files); 
+  else 
+  {
+       if(sd->selection.current.ptr->next) /* are we already at the end? */
+               {
+       
+                       E_Fm_Icon *icon;
+                       Evas_Coord x, x2, y, w, h;;
+               
+                       l = sd->selection.current.ptr;
+                       icon = l->data;
+                       evas_object_geometry_get(icon->icon_obj, &x, NULL, 
NULL, NULL);
+                       x2 = x + 1;
+                       
+                       if 
(!evas_key_modifier_is_set(evas_key_modifier_get(sd->evas), "Control"))
+                       {
+                               while(l->next && (x != x2))
+                       {
+                               l = l->next;
+                               icon = l->data;
+                       evas_object_geometry_get(icon->icon_obj, &x2, NULL, 
NULL, NULL);       
+                               }
+                   _e_fm_selections_clear(sd);
+                   _e_fm_selections_add(l->data, l);
+                       }
+                       else /* Control modifier set */
+                       {
+                               while(l->next  && (x != x2))
+                       {
+                               l = l->next;
+                               icon = l->data;
+                       evas_object_geometry_get(icon->icon_obj, &x2, NULL, 
NULL, NULL);
+                               
+                               if(icon->state.selected)
+                           {
+                               _e_fm_selections_del(l->data);
+                               _e_fm_selections_current_set(l->data, l);
+                           }
+                               else
+                               _e_fm_selections_add(l->data, l);         
+                       }
+                       }
+                 evas_object_geometry_get(icon->icon_obj, &x, &y, &w, &h);
+                 if(!E_CONTAINS(sd->x, sd->y, sd->w, sd->h, x, y, w, h))
+                 {
+                         E_Event_Fm_Reconfigure *ev;
+                         
+                         ev = E_NEW(E_Event_Fm_Reconfigure, 1);
+                         if (ev)
+                         {                         
+                               ev->object = sd->object;
+                           ev->x = sd->x;
+                           ev->y = sd->child.y - (sd->y - (y - 
sd->icon_info.y_space));
+                           ev->w = sd->w;
+                           ev->h = sd->h;
+                           ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, 
NULL);
+                               }
+                       }
+               }
+  } 
+}
+
+static void
+_e_fm_icon_select_left(E_Fm_Smart_Data *sd)
+{  
+  if(!sd->selection.current.ptr)
+       _e_fm_selections_add(sd->files->data, sd->files);   
+  else
+  {
+       if(sd->selection.current.ptr->prev)
+         {
+               Evas_List *prev;
+               E_Fm_Icon *icon;
+                 Evas_Coord x, y, w, h;
+                               
+           prev = sd->selection.current.ptr->prev;
+                 icon = prev->data;
+                           
+           if (evas_key_modifier_is_set(evas_key_modifier_get(sd->evas), 
"Control"))
+                       {
+                       if(icon->state.selected)
+                   {
+                     _e_fm_selections_del(prev->data);
+                     _e_fm_selections_current_set(prev->data, prev);
+                   }
+                               else                   
+                       _e_fm_selections_add(prev->data, prev);
+               }
+               else
+               {
+                               _e_fm_selections_clear(sd);
+                       _e_fm_selections_add(prev->data, prev);
+               }
+                        
+                 evas_object_geometry_get(icon->icon_obj, &x, &y, &w, &h);
+                 if(!E_CONTAINS(sd->x, sd->y, sd->w, sd->h, x, y, w, h))
+                 {
+             E_Event_Fm_Reconfigure *ev;       
+                   ev = E_NEW(E_Event_Fm_Reconfigure, 1);
+                   if (ev)
+                               {                           
+                           ev->object = sd->object;
+                           ev->x = sd->x;
+                           ev->y = sd->child.y - (sd->y - (y - 
sd->icon_info.y_space));
+                           ev->w = sd->w;
+                           ev->h = sd->h;
+                           ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, 
NULL);
+                               }
+                 }
+         }
+       }
+}
+
+static void
+_e_fm_icon_select_right(E_Fm_Smart_Data *sd)
+{
+  if(!sd->selection.current.ptr)
+       _e_fm_selections_add(sd->files->data, sd->files);
+  else
+  {
+               if (sd->selection.current.ptr->next)
+         {
+           Evas_List *next;
+       E_Fm_Icon *icon;
+      Evas_Coord x, y, w, h;
+       
+           next = sd->selection.current.ptr->next;
+           icon = next->data;
+           
+           if (evas_key_modifier_is_set(evas_key_modifier_get(sd->evas), 
"Control"))
+           {
+                       if (icon->state.selected)
+                   {                 
+                    _e_fm_selections_del(next->data);
+                    _e_fm_selections_current_set(next->data, next);
+                   }
+                       else                   
+                       _e_fm_selections_add(next->data, next);
+           }
+           else
+           {
+                       _e_fm_selections_clear(sd);
+                       _e_fm_selections_add(next->data, next);
+           }
+                      
+                 evas_object_geometry_get(icon->icon_obj, &x, &y, &w, &h);
+                 if (!E_CONTAINS(sd->x, sd->y, sd->w, sd->h, x, y, w, h))
+                 {
+                       E_Event_Fm_Reconfigure *ev;
+
+                   ev = E_NEW(E_Event_Fm_Reconfigure, 1);
+                   if (ev)
+                               {                           
+                           ev->object = sd->object;
+                           ev->x = sd->x;
+                           ev->y = sd->child.y + y + h + sd->icon_info.y_space 
- (sd->y + sd->h);
+                           ev->w = sd->w;
+                           ev->h = sd->h;
+                           ecore_event_add(E_EVENT_FM_RECONFIGURE, ev, NULL, 
NULL);
+                               }
+                 }
+         }
+       }
+}
+
+
+
+static void
+_e_fm_icon_run(E_Fm_Smart_Data *sd)
+{
+   E_Fm_Icon *icon;
+
+   if (sd->selection.current.ptr)
+     {
+       icon = sd->selection.current.file;
+       if (icon->file->type == E_FM_FILE_TYPE_DIRECTORY)
+         {          
+            char *fullname;
+
+            if (!strcmp(icon->file->name, ".."))
+              {
+                 fullname = _e_fm_dir_pop(icon->sd->dir);
+              }
+            else
+              {
+                 fullname = strdup(icon->file->path);
+              }
+            if (fullname)
+              {
+                 if (icon->sd->win)
+                   e_win_title_set(icon->sd->win, fullname);
+                 _e_fm_dir_set(icon->sd, fullname);
+                 free(fullname);
+              }
+         }
+       else if (icon->file->type == E_FM_FILE_TYPE_FILE)
+         {          
+            if (icon->sd->is_selector)
+              {
+                 _e_fm_selector_send_file(icon);
+                 return;
+              }
+
+            if ((!e_fm_file_assoc_exec(icon->file)) &&
+                (e_fm_file_can_exec(icon->file)))
+              e_fm_file_exec(icon->file);
+         }     
+     }
+}
+
 static void
 _e_fm_key_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {

Reply via email to