d_screen_t *sc = sc_it->data;
d_list_it_t *it;
for (it = list_bottom(sc->stacking); it; it = it->prev)
- if (window_is_mapped(it->data)) {
- /* make the window think it is unmapped so that the
- show works right */
- window_fake_unmapped(it->data);
+ if (window_is_attr_mapped(it->data))
sc->window_show(it->data);
- }
}
}
/* queried things, don't read them directly from the struct */
int x, y, w, h, bw;
- gboolean mapped;
+ gboolean attr_mapped;
gboolean input_only;
xcb_visualid_t visual;
xcb_pixmap_t pixmap;
double opacity;
+ gboolean mapped;
gboolean zombie;
d_list_t *plugin_data;
w->ref = 1;
w->sc = sc;
w->zombie = FALSE;
+ w->mapped = FALSE;
w->pixmap = XCB_NONE;
w->damage = XCB_NONE;
{
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);
{
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);
if (rep) {
w->input_only = rep->_class == XCB_WINDOW_CLASS_INPUT_ONLY;
- w->mapped = rep->map_state != XCB_MAP_STATE_UNMAPPED;
+ w->attr_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 {
w->input_only = TRUE;
- w->mapped = FALSE;
+ w->attr_mapped = FALSE;
w->visual = XCB_NONE;
}
if (err) {
window_is_mapped(d_window_t *pubw)
{
d_window_priv_t *w = (d_window_priv_t*)pubw;
+ return w->mapped;
+}
+
+gboolean
+window_is_attr_mapped(d_window_t *pubw)
+{
+ d_window_priv_t *w = (d_window_priv_t*)pubw;
if (w->waiting_attr)
window_get_attributes_reply(w);
- return w->mapped;
+ return w->attr_mapped;
}
xcb_pixmap_t
gboolean window_is_zombie(d_window_t *w);
gboolean window_is_input_only(d_window_t *w);
gboolean window_is_mapped(d_window_t *w);
+gboolean window_is_attr_mapped(d_window_t *w);
void window_get_area(d_window_t *pubw, int *x, int *y, int *width, int *height,
int *border_width);