[Xfce4-commits] r29705 - in xfwm4/trunk: . src
Olivier Fourdan
olivier at xfce.org
Tue Apr 7 14:33:11 CEST 2009
Author: olivier
Date: 2009-04-07 12:33:09 +0000 (Tue, 07 Apr 2009)
New Revision: 29705
Modified:
xfwm4/trunk/ChangeLog
xfwm4/trunk/src/compositor.c
Log:
* src/compositor.c: Make fullscreen override opaque, so screensaver
is not partly transparent even if not unredirecting fullscreen
windows.
Modified: xfwm4/trunk/ChangeLog
===================================================================
--- xfwm4/trunk/ChangeLog 2009-04-05 17:00:43 UTC (rev 29704)
+++ xfwm4/trunk/ChangeLog 2009-04-07 12:33:09 UTC (rev 29705)
@@ -1,3 +1,9 @@
+2009-04-07 olivier
+
+ * src/compositor.c: Make fullscreen override opaque, so screensaver
+ is not partly transparent even if not unredirecting fullscreen
+ windows.
+
2009-04-05 olivier
* src/compositor.c: Check fullscreen status against each monitor and not
Modified: xfwm4/trunk/src/compositor.c
===================================================================
--- xfwm4/trunk/src/compositor.c 2009-04-05 17:00:43 UTC (rev 29704)
+++ xfwm4/trunk/src/compositor.c 2009-04-07 12:33:09 UTC (rev 29705)
@@ -73,6 +73,10 @@
#define WIN_IS_ARGB(cw) (cw->argb)
#define WIN_IS_OPAQUE(cw) ((cw->opacity == NET_WM_OPAQUE) && !WIN_IS_ARGB(cw))
#define WIN_IS_NATIVE_OPAQUE(cw) ((cw->native_opacity) && !WIN_IS_ARGB(cw))
+#define WIN_IS_FULLSCREEN(cw) ((cw->attr.x <= 0) && \
+ (cw->attr.y <= 0) && \
+ (cw->attr.width + 2 * cw->attr.border_width >= cw->screen_info->width) && \
+ (cw->attr.height + 2 * cw->attr.border_width >= cw->screen_info->height))
#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)
@@ -190,10 +194,7 @@
GdkRectangle rect;
/* First, check the good old way, the window is larger than the screen size */
- if ((cw->attr.x <= 0) &&
- (cw->attr.y <= 0) &&
- (cw->attr.width + 2 * cw->attr.border_width >= cw->screen_info->width) &&
- (cw->attr.height + 2 * cw->attr.border_width >= cw->screen_info->height))
+ if (WIN_IS_FULLSCREEN(cw))
{
return TRUE;
}
@@ -951,7 +952,7 @@
if ((screen_info->params->show_popup_shadow &&
WIN_IS_OVERRIDE(cw) &&
!(WIN_IS_ARGB(cw) || WIN_IS_SHAPED(cw)) &&
- !is_fullscreen(cw)) ||
+ !WIN_IS_FULLSCREEN(cw)) ||
(screen_info->params->show_frame_shadow &&
!WIN_IS_OVERRIDE(cw) &&
!WIN_NO_SHADOW(cw) &&
@@ -1793,15 +1794,10 @@
cw->viewable = TRUE;
cw->damaged = FALSE;
- if (!screen_info->params->unredirect_overlays)
- {
- TRACE ("Not unredirecting wins_unredirected");
- return;
- }
-
/* Check for new windows to un-redirect. */
- if (((screen_info->wins_unredirected > 0) || is_fullscreen(cw)) && WIN_HAS_DAMAGE(cw) && WIN_IS_OVERRIDE(cw) &&
- WIN_IS_NATIVE_OPAQUE(cw) && WIN_IS_REDIRECTED(cw) && !WIN_IS_SHAPED(cw))
+ if (WIN_HAS_DAMAGE(cw) && WIN_IS_OVERRIDE(cw) &&
+ WIN_IS_NATIVE_OPAQUE(cw) && WIN_IS_REDIRECTED(cw) && !WIN_IS_SHAPED(cw)
+ && ((screen_info->wins_unredirected > 0) || is_fullscreen(cw)))
{
CWindow *top;
GList *index;
@@ -1811,8 +1807,13 @@
if (cw == top)
{
- TRACE ("Unredirecting toplevel window 0x%lx", cw->id);
- unredirect_win (cw);
+ /* Make those opaque, we don't want them to be transparent */
+ cw->opacity = NET_WM_OPAQUE;
+ if (screen_info->params->unredirect_overlays)
+ {
+ TRACE ("Unredirecting toplevel window 0x%lx", cw->id);
+ unredirect_win (cw);
+ }
}
}
}
More information about the Xfce4-commits
mailing list