discomfitor pushed a commit to branch master.

commit e251e4a8a6b312c86a03f3a6e2690d49ea0d11d0
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Jun 21 14:35:37 2013 +0100

    prevent deletion of E_Exec instances from launchers
    
    if a border appears which has a pid that does not match the pid of the 
e_exec instance which is found for it, prevent the exec deletion until the 
border is deleted so that we can track it
    
    this fixes ibar tracking of efm windows
---
 src/bin/e_border.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/bin/e_border.c b/src/bin/e_border.c
index 15cdc3a..75544a8 100644
--- a/src/bin/e_border.c
+++ b/src/bin/e_border.c
@@ -7987,6 +7987,15 @@ _e_border_eval0(E_Border *bd)
                   desk = e_desk_at_xy_get(bd->zone, inst->desk_x,
                                           inst->desk_y);
                   if (desk) e_border_desk_set(bd, desk);
+                  if (bd->client.netwm.pid != ecore_exe_pid_get(inst->exe))
+                    {
+                       /* most likely what has happened here is that the 
.desktop launcher
+                        * has spawned a process which then created this 
border, meaning the
+                        * E_Exec instance will be deleted in a moment, and we 
will be unable to track it.
+                        * to prevent this, we convert our instance to a phony
+                        */
+                        inst->phony = 1;
+                    }
                   inst->bd = bd;
                   bd->exe_inst = inst;
                   e_exec_instance_found(inst);

-- 

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev

Reply via email to