[Xfce4-commits] r23287 - xfwm4/trunk/src
Olivier Fourdan
olivier at xfce.org
Wed Oct 4 21:32:05 UTC 2006
Author: olivier
Date: 2006-10-04 21:32:03 +0000 (Wed, 04 Oct 2006)
New Revision: 23287
Modified:
xfwm4/trunk/src/compositor.c
Log:
Init ignore_unmaps to 0 instead of 1 at first unredirect, it seems to make more sense (and also it fixes a bug with xscreensaver) - Might break elsewhere though, but still needs fixing.
Modified: xfwm4/trunk/src/compositor.c
===================================================================
--- xfwm4/trunk/src/compositor.c 2006-10-04 19:21:39 UTC (rev 23286)
+++ xfwm4/trunk/src/compositor.c 2006-10-04 21:32:03 UTC (rev 23287)
@@ -64,10 +64,11 @@
#endif /* SHADOW_OFFSET_Y */
/* Some convenient macros */
-#define WIN_HAS_FRAME(cw) ((cw->c) && FLAG_TEST (cw->c->xfwm_flags, XFWM_FLAG_HAS_BORDER) && \
+#define WIN_HAS_CLIENT(cw) (cw->c)
+#define WIN_HAS_FRAME(cw) (WIN_HAS_CLIENT(cw) && FLAG_TEST (cw->c->xfwm_flags, XFWM_FLAG_HAS_BORDER) && \
!FLAG_TEST (cw->c->flags, CLIENT_FLAG_FULLSCREEN))
#define WIN_NO_SHADOW(cw) ((cw->c) && FLAG_TEST (cw->c->flags, CLIENT_FLAG_FULLSCREEN | CLIENT_FLAG_BELOW))
-#define WIN_IS_OVERRIDE(cw) (cw->c == NULL)
+#define WIN_IS_OVERRIDE(cw) (cw->attr.override_redirect)
#define WIN_IS_ARGB(cw) (cw->argb)
#define WIN_IS_OPAQUE(cw) (((cw->opacity == NET_WM_OPAQUE) && !WIN_IS_ARGB(cw)) || (cw->screen_info->overlays))
#define WIN_IS_NATIVE_OPAQUE(cw) ((cw->native_opacity) && !WIN_IS_ARGB(cw))
@@ -75,7 +76,7 @@
(cw->attr.y <= 0) && \
(cw->attr.width >= cw->screen_info->width) && \
(cw->attr.height >= cw->screen_info->height))
-#define WIN_IS_SHAPED(cw) ((!WIN_IS_OVERRIDE(cw) && FLAG_TEST (cw->c->flags, CLIENT_FLAG_HAS_SHAPE)) || \
+#define WIN_IS_SHAPED(cw) ((WIN_HAS_CLIENT(cw) && FLAG_TEST (cw->c->flags, CLIENT_FLAG_HAS_SHAPE)) || \
(WIN_IS_OVERRIDE(cw) && (cw->shaped)))
#define WIN_IS_VIEWABLE(cw) (cw->viewable)
#define WIN_HAS_DAMAGE(cw) (cw->damage)
@@ -1076,7 +1077,7 @@
display_info = screen_info->display_info;
free_win_data (cw, FALSE);
- cw->ignore_unmaps++;
+ cw->ignore_unmaps = 0;
cw->redirected = FALSE;
XCompositeUnredirectWindow (display_info->dpy, cw->id, display_info->composite_mode);
@@ -1751,6 +1752,7 @@
if (cw->ignore_unmaps)
{
cw->ignore_unmaps++;
+ TRACE ("Mapped window 0x%lx had unmaps pending, increased to %i", cw->id, cw->ignore_unmaps);
return;
}
@@ -1761,7 +1763,6 @@
TRACE ("Mapped window 0x%lx, overlays increased to %i", cw->id, screen_info->overlays);
return;
}
-
if (!screen_info->params->unredirect_overlays)
{
TRACE ("Not unredirecting overlays");
@@ -1797,6 +1798,7 @@
if (cw->ignore_unmaps)
{
cw->ignore_unmaps--;
+ TRACE ("Unmapped window 0x%lx had unmaps pending, remains %i", cw->id, cw->ignore_unmaps);
return;
}
@@ -1804,7 +1806,7 @@
if (!WIN_IS_REDIRECTED(cw) && (screen_info->overlays > 0))
{
screen_info->overlays--;
- TRACE ("Unmapped window 0x%lx, overlays decreased to %i\n", cw->id, screen_info->overlays);
+ TRACE ("Unmapped window 0x%lx, overlays decreased to %i", cw->id, screen_info->overlays);
}
if (WIN_IS_VISIBLE(cw))
More information about the Xfce4-commits
mailing list