[fusion-commits] Plug-in for Metacity-like workarounds.: Changes to 'master' (7fb4969991be53f7df413a70be93966caf459c35)

griswold at server.beryl-project.org griswold at server.beryl-project.org
Thu Aug 2 23:48:45 CEST 2007


New commits:
commit 7fb4969991be53f7df413a70be93966caf459c35
Author: Andrew Riedi <andrewriedi at gmail.com>
Date:   Thu Aug 2 14:38:47 2007 -0700

    Merge workaroundsDoLegacyFullscreen() into workaroundsDoFixes().

commit e3d2033d9c15241f73303b3ec60d6a3cafccd3d5
Author: Andrew Riedi <andrewriedi at gmail.com>
Date:   Thu Aug 2 14:29:21 2007 -0700

    Make workaroundsDoFixes() stand alone.


 workarounds.c |   68 ++++++++++++++++++++++++++------------------------------
 1 files changed, 32 insertions(+), 36 deletions(-)


Modified: fusion/plugins/workarounds/workarounds.c
===================================================================
--- fusion/plugins/workarounds/workarounds.c
+++ fusion/plugins/workarounds/workarounds.c
@@ -86,43 +86,12 @@ workaroundsGetWindowRoleAtom (CompWindow *w)
 }
 
 static void
-workaroundsDoLegacyFullscreen (CompWindow *w)
-{
-    unsigned int type;
-
-    type = w->type;
-
-    /* Some code to make Wine and legacy applications work. */
-    if (w->width == w->screen->width && w->height == w->screen->height &&
-        !(type & CompWindowTypeDesktopMask))
-            type = CompWindowTypeFullscreenMask;
-
-    w->type = type;
-}
-
-static void
-workaroundsWindowResizeNotify (CompWindow *w, int dx, int dy,
-                               int dwidth, int dheight)
-{
-    WORKAROUNDS_SCREEN (w->screen);
-
-    if (workaroundsGetLegacyFullscreen (w->screen->display))
-    {
-        /* Fix up the window type. */
-        recalcWindowType (w);
-        workaroundsDoLegacyFullscreen (w);
-    }
-
-    UNWRAP (ws, w->screen, windowResizeNotify);
-    (*w->screen->windowResizeNotify) (w, dx, dy, dwidth, dheight);
-    WRAP (ws, w->screen, windowResizeNotify, workaroundsWindowResizeNotify);
-}
-
-static Bool
-workaroundsInitWindow (CompPlugin *plugin, CompWindow *w)
+workaroundsDoFixes (CompWindow *w)
 {
     Bool appliedFix = FALSE;
 
+    w->wmType = getWindowType (w->screen->display, w->id);
+
     /* FIXME: Is this the best way to detect a notification type window? */
     if (workaroundsGetNotificationDaemonFix (w->screen->display) && w->resName)
     {
@@ -201,9 +170,28 @@ workaroundsInitWindow (CompPlugin *plugin, CompWindow *w)
     recalcWindowType (w);
 
     if (workaroundsGetLegacyFullscreen (w->screen->display))
-        workaroundsDoLegacyFullscreen (w);
+    {
+        /* Some code to make Wine and legacy applications work. */
+        if (w->width == w->screen->width && w->height == w->screen->height &&
+            !(w->type & CompWindowTypeDesktopMask))
+                w->type = CompWindowTypeFullscreenMask;
+    }
+}
 
-    return TRUE;
+static void
+workaroundsWindowResizeNotify (CompWindow *w, int dx, int dy,
+                               int dwidth, int dheight)
+{
+    WORKAROUNDS_SCREEN (w->screen);
+
+    if (workaroundsGetLegacyFullscreen (w->screen->display))
+    {
+        workaroundsDoFixes (w);
+    }
+
+    UNWRAP (ws, w->screen, windowResizeNotify);
+    (*w->screen->windowResizeNotify) (w, dx, dy, dwidth, dheight);
+    WRAP (ws, w->screen, windowResizeNotify, workaroundsWindowResizeNotify);
 }
 
 static Bool
@@ -267,6 +255,14 @@ workaroundsFiniScreen (CompPlugin *plugin, CompScreen *s)
     free (ws);
 }
 
+static Bool
+workaroundsInitWindow (CompPlugin *plugin, CompWindow *w)
+{
+    workaroundsDoFixes (w);
+
+    return TRUE;
+}
+
 static void
 workaroundsFiniWindow (CompPlugin *plugin, CompWindow *w)
 {


More information about the commits mailing list