summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2008-01-21 09:51:28 +0100
committerDanny Baumann <dannybaumann@web.de>2008-01-21 09:51:28 +0100
commita4f843d072f45d3fcaf1378f26a4e0b9d6351898 (patch)
tree4aa67fc29670c5c5bc2e758cce5d43d058d43dff
parentec384afcad00400079ca64f6355e76b54651e5b0 (diff)
downloadworkarounds-a4f843d072f45d3fcaf1378f26a4e0b9d6351898.tar.gz
workarounds-a4f843d072f45d3fcaf1378f26a4e0b9d6351898.tar.bz2
Make sure the fullscreen workaround is only applied to windows which are either already mapped or request being mapped.
-rw-r--r--workarounds.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/workarounds.c b/workarounds.c
index 1e3d28a..d7b1483 100644
--- a/workarounds.c
+++ b/workarounds.c
@@ -298,6 +298,9 @@ workaroundsFixupFullscreen (CompWindow *w)
WORKAROUNDS_WINDOW (w);
WORKAROUNDS_DISPLAY (w->screen->display);
+ if (!workaroundsGetLegacyFullscreen (w->screen->display))
+ return;
+
if (w->wmType & CompWindowTypeDesktopMask)
{
/* desktop windows are implicitly fullscreen */
@@ -489,9 +492,6 @@ AppliedFix:
(*d->matchPropertyChanged) (d, w);
}
-
- if (workaroundsGetLegacyFullscreen (w->screen->display))
- workaroundsFixupFullscreen (w);
}
static void
@@ -542,12 +542,16 @@ workaroundsHandleEvent (CompDisplay *d,
{
workaroundsUpdateSticky (w);
workaroundsDoFixes (w);
+ workaroundsFixupFullscreen (w);
}
break;
case MapNotify:
w = findWindowAtDisplay (d, event->xmap.window);
if (w && w->attrib.override_redirect)
+ {
workaroundsDoFixes (w);
+ workaroundsFixupFullscreen (w);
+ }
break;
case DestroyNotify:
w = findWindowAtDisplay (d, event->xdestroywindow.window);
@@ -599,7 +603,7 @@ workaroundsWindowResizeNotify (CompWindow *w, int dx, int dy,
{
WORKAROUNDS_SCREEN (w->screen);
- if (workaroundsGetLegacyFullscreen (w->screen->display))
+ if (w->attrib.map_state == IsViewable)
workaroundsFixupFullscreen (w);
UNWRAP (ws, w->screen, windowResizeNotify);