e_policy_conformant: add code to check conformant's owner when ec is destroyed 10/118710/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Mon, 13 Mar 2017 23:20:38 +0000 (08:20 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Mon, 13 Mar 2017 23:20:38 +0000 (08:20 +0900)
There was a bug that the conformant's owner window didn't update when it is destroyed.
So, new conformant's owner window couldn't update conformant area.

Change-Id: I65d33f9c5692e21e1bc26b1538dfae28ffc511ca

src/bin/e_policy_conformant.c

index 4bfd9761172daf267c7343f904c6350f674e80d0..6127e42dcb545af00d34ba55208b3d9773ed025f 100644 (file)
@@ -825,16 +825,28 @@ static void
 _conf_cb_client_del(void *data, E_Client *ec)
 {
    Conformant_Client *cfc;
+   Conformant_Type type;
 
    if (!g_conf || !g_conf->client_hash)
      return;
 
+   DBG("Client Del '%s'(%p)", ec->icccm.name ? ec->icccm.name : "", ec);
+
    cfc = eina_hash_find(g_conf->client_hash, &ec);
    if (!cfc)
      return;
 
    eina_hash_del(g_conf->client_hash, &ec, cfc);
    _conf_client_del(cfc);
+
+   for (type = 0; type < CONFORMANT_TYPE_MAX; type++)
+     {
+        if (g_conf->part[type].owner == ec)
+          {
+             g_conf->part[type].owner = NULL;
+             g_conf->part[type].state.will_hide = EINA_FALSE;
+          }
+     }
 }
 
 static Eina_Bool