Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_apps.c e_fwin.c e_zone.c 


Log Message:


oof a nast old bug lurking in e_apps for execcing - if the app is NOT in the
all apps repo. fixed.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_apps.c,v
retrieving revision 1.240
retrieving revision 1.241
diff -u -3 -r1.240 -r1.241
--- e_apps.c    25 Oct 2006 10:23:33 -0000      1.240
+++ e_apps.c    29 Oct 2006 10:29:45 -0000      1.241
@@ -697,9 +697,12 @@
    inst->launch_id = launch_id;
    inst->launch_time = ecore_time_get();
    inst->expire_timer = ecore_timer_add(10.0, _e_app_cb_expire_timer, inst);
-   
-   _e_apps_all->subapps = evas_list_remove(_e_apps_all->subapps, original);
-   _e_apps_all->subapps = evas_list_prepend(_e_apps_all->subapps, original);
+
+   if (original->parent == _e_apps_all)
+     {
+       _e_apps_all->subapps = evas_list_remove(_e_apps_all->subapps, original);
+       _e_apps_all->subapps = evas_list_prepend(_e_apps_all->subapps, 
original);
+     }
 
    original->instances = evas_list_append(original->instances, inst);
    _e_apps_start_pending = evas_list_append(_e_apps_start_pending, original);
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_fwin.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- e_fwin.c    29 Oct 2006 09:46:19 -0000      1.18
+++ e_fwin.c    29 Oct 2006 10:29:45 -0000      1.19
@@ -529,6 +529,11 @@
                  return E_FWIN_EXEC_SH;
               }
          }
+       else if ((e_util_glob_match(ici->file, "*.desktop")) ||
+                (e_util_glob_match(ici->file, "*.kdelink")))
+         {
+            return E_FWIN_EXEC_DESKTOP;
+         }
      }
    return E_FWIN_EXEC_NONE;
 }
@@ -562,7 +567,11 @@
        e_zone_exec(fwin->win->border->zone, buf);
        break;
       case E_FWIN_EXEC_DESKTOP:
-       a = e_app_new(ici->file, 0);
+       if (ici->pseudo_link)
+         snprintf(buf, sizeof(buf), "%s/%s", ici->pseudo_dir, ici->file);
+       else
+         snprintf(buf, sizeof(buf), "%s/%s", 
e_fm2_real_path_get(fwin->fm_obj), ici->file);
+       a = e_app_new(buf, 0);
        if (a)
          {
             e_zone_app_exec(fwin->win->border->zone, a);
@@ -693,34 +702,39 @@
         * use it, if not fall back again - and so on - if all apps listed do
         * not contain 1 that handles all the mime types - fall back to dialog
         */
-       if (evas_list_count(mlist) == 1)
+       if (evas_list_count(mlist) <= 1)
          {
-            a = e_exehist_mime_app_get(mlist->data);
-            if (a)
+            char pcwd[4096], buf[4096], *cmd;
+            Ecore_List *files_list = NULL, *cmds = NULL;
+          
+            need_dia = 1;
+            a = NULL;
+            if (mlist) a = e_exehist_mime_app_get(mlist->data);
+            getcwd(pcwd, sizeof(pcwd));
+            chdir(e_fm2_real_path_get(fwin->fm_obj));
+            
+            files_list = ecore_list_new();
+            ecore_list_set_free_cb(files_list, free);
+            for (l = files; l; l = l->next)
               {
-                 char pcwd[4096], buf[4096], *cmd;
-                 Ecore_List *files_list = NULL, *cmds = NULL;
-                 
-                 getcwd(pcwd, sizeof(pcwd));
-                 chdir(e_fm2_real_path_get(fwin->fm_obj));
+                 ici = l->data;
+                 if (_e_fwin_file_is_exec(ici) == E_FWIN_EXEC_NONE)
+                   ecore_list_append(files_list, strdup(ici->file));
+              }
+            for (l = files; l; l = l->next)
+              {
+                 E_Fwin_Exec_Type ext;
                  
-                 files_list = ecore_list_new();
-                 ecore_list_set_free_cb(files_list, free);
-                 for (l = files; l; l = l->next)
-                   {
-                      ici = l->data;
-                      if (_e_fwin_file_is_exec(ici) == E_FWIN_EXEC_NONE)
-                        ecore_list_append(files_list, strdup(ici->file));
-                   }
-                 for (l = files; l; l = l->next)
+                 ici = l->data;
+                 ext = _e_fwin_file_is_exec(ici);
+                 if (ext != E_FWIN_EXEC_NONE)
                    {
-                      E_Fwin_Exec_Type ext;
-                      
-                      ici = l->data;
-                      ext = _e_fwin_file_is_exec(ici);
-                      if (ext != E_FWIN_EXEC_NONE)
-                        _e_fwin_file_exec(fwin, ici, ext);
+                      _e_fwin_file_exec(fwin, ici, ext);
+                      need_dia = 0;
                    }
+              }
+            if (a)
+              {
                  cmds = ecore_desktop_get_command(a->desktop, files_list, 1);
                  if (cmds)
                    {
@@ -729,15 +743,18 @@
                         {
                            e_zone_exec(fwin->win->border->zone, cmd);
                            e_exehist_add("fwin", cmd);
+                           need_dia = 0;
                         }
                       ecore_list_destroy(cmds);
                    }
-                 ecore_list_destroy(files_list);
-                 
+              }
+            ecore_list_destroy(files_list);
+            
+            chdir(pcwd);
+            if (!need_dia)
+              {
                  if (apps) evas_list_free(apps);
                  evas_list_free(mlist);
-                 
-                 chdir(pcwd);
                  return;
               }
          }
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_zone.c,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -3 -r1.104 -r1.105
--- e_zone.c    29 Oct 2006 09:31:12 -0000      1.104
+++ e_zone.c    29 Oct 2006 10:29:45 -0000      1.105
@@ -673,9 +673,9 @@
      }
    /* 20 lines at start and end, 20x100 limit on bytes at each end. */
    ecore_exe_auto_limits_set(ex, 2000, 2000, 20, 20);
-   ecore_exe_tag_set(ex, "E/app");
    if (a)
      {
+       ecore_exe_tag_set(ex, "E/app");
        inst->app = a;
        inst->exe = ex;
        inst->launch_id = startup_id;
@@ -684,9 +684,7 @@
        if (a->startup_notify) a->starting = 1;
      }
    else
-     {
-       ecore_exe_free(ex);
-     }
+     ecore_exe_free(ex);
    return ret;
 }
 



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to