discomfitor pushed a commit to branch master.

commit d544048b0edc5b0a4b5f16e8e737409d7e0bfc84
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Jul 26 11:05:17 2013 +0100

    add delete flag to e_border to alert us that this client window is dead
---
 src/bin/e_border.c | 7 +++++--
 src/bin/e_border.h | 1 +
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_border.c b/src/bin/e_border.c
index 2d1bd59..efe4907 100644
--- a/src/bin/e_border.c
+++ b/src/bin/e_border.c
@@ -4959,7 +4959,7 @@ _e_border_del(E_Border *bd)
         ecore_timer_del(bd->raise_timer);
         bd->raise_timer = NULL;
      }
-   if (!bd->already_unparented)
+   if ((!bd->already_unparented) && (!bd->destroyed))
      {
         ecore_x_window_reparent(bd->client.win,
                                 bd->zone->container->manager->root,
@@ -5069,7 +5069,7 @@ _e_border_cb_window_destroy(void *data  __UNUSED__,
    e = ev;
    bd = e_border_find_by_client_window(e->win);
    if (!bd) return ECORE_CALLBACK_PASS_ON;
-   e_border_hide(bd, 0);
+   bd->destroyed = 1;
    e_object_del(E_OBJECT(bd));
    return ECORE_CALLBACK_PASS_ON;
 }
@@ -5130,6 +5130,9 @@ _e_border_cb_window_hide(void *data  __UNUSED__,
    else
      {
 //             printf("  hide2\n");
+
+        if (bd->delete_requested)
+          bd->destroyed = 1;
         e_border_hide(bd, 0);
         e_object_del(E_OBJECT(bd));
      }
diff --git a/src/bin/e_border.h b/src/bin/e_border.h
index de62ab9..183d6e1 100644
--- a/src/bin/e_border.h
+++ b/src/bin/e_border.h
@@ -561,6 +561,7 @@ struct _E_Border
    unsigned int       internal_no_reopen : 1;
    unsigned int       stolen : 1;
    Eina_Bool          theme_shadow : 1;
+   Eina_Bool          destroyed : 1;
 
    Ecore_Evas        *internal_ecore_evas;
 

-- 

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk

Reply via email to