and actuually send sync cancel too. (and inc counter to avoid race)
authorCarsten Haitzler <raster@rasterman.com>
Sat, 6 Mar 2010 17:15:10 +0000 (17:15 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Sat, 6 Mar 2010 17:15:10 +0000 (17:15 +0000)
SVN revision: 46913

src/modules/comp/e_mod_comp.c

index d2014d6..d9ab775 100644 (file)
@@ -797,7 +797,10 @@ _e_mod_comp_cb_update(E_Comp *c)
                     {
                        printf("nosync\n");
                        if (cw->bd)
-                         ecore_x_e_comp_sync_cancel_send(cw->bd->client.win);
+                         {
+                            ecore_x_e_comp_sync_cancel_send(cw->bd->client.win);
+                            ecore_x_sync_counter_inc(cw->counter, 1);
+                         }
                     }
 //                  ecore_x_window_hide(cw->win);
 //                  ecore_x_window_show(cw->win);
@@ -998,6 +1001,11 @@ _e_mod_comp_object_del(void *data, void *obj)
    _e_mod_comp_win_render_queue(cw);
    if (obj == cw->bd)
      {
+        if (cw->counter)
+          {
+             ecore_x_e_comp_sync_cancel_send(cw->bd->client.win);
+             ecore_x_sync_counter_inc(cw->counter, 1);
+          }
         eina_hash_del(borders, e_util_winid_str_get(cw->bd->client.win), cw);
         cw->bd = NULL;
 // hmm - lockup?