fix some more memory problems
[dana/dcompmgr.git] / window.c
index f4a97a9..2c55b10 100644 (file)
--- a/window.c
+++ b/window.c
@@ -132,6 +132,7 @@ window_show(d_window_t *pubw)
     d_window_priv_t *w = (d_window_priv_t*)pubw;
 
     window_is_mapped(pubw); /* kill any ongoing request */
+    assert(!w->mapped);
 
     //printf("show window 0x%x\n", w->id);
 
@@ -145,6 +146,7 @@ window_hide(d_window_t *pubw)
     d_window_priv_t *w = (d_window_priv_t*)pubw;
 
     window_is_mapped(pubw); /* kill any ongoing request */
+    assert(w->mapped);
 
     //printf("hide window 0x%x\n", w->id);
 
@@ -152,6 +154,14 @@ window_hide(d_window_t *pubw)
 }
 
 void
+window_fake_unmapped(d_window_t *pubw)
+{
+    d_window_priv_t *w = (d_window_priv_t*)pubw;
+
+    w->mapped = FALSE;
+}
+
+void
 window_become_zombie(d_window_t *pubw)
 {
     d_window_priv_t *w = (d_window_priv_t*)pubw;
@@ -205,6 +215,7 @@ window_get_attributes_reply(d_window_priv_t *w)
         w->input_only = rep->_class == XCB_WINDOW_CLASS_INPUT_ONLY;
         w->mapped = rep->map_state != XCB_MAP_STATE_UNMAPPED;
         w->visual = rep->visual;
+        //printf("0x%x attributes mapped %d\n", w->id, w->mapped);
         free(rep);
     }
     else {
@@ -216,7 +227,7 @@ window_get_attributes_reply(d_window_priv_t *w)
         printf("error getting attributes for window 0x%x\n", w->id);
         free(err);
     }
-    w->waiting_attr = 0;
+    w->waiting_attr = FALSE;
 }
 
 static void
@@ -246,7 +257,7 @@ window_get_geometry_reply(d_window_priv_t *w)
         printf("error getting geometry for window 0x%x\n", w->id);
         free(err);
     }
-    w->waiting_geom = 0;
+    w->waiting_geom = FALSE;
 }
 
 gboolean