Sophie

Sophie

distrib > Mandriva > 2008.0 > x86_64 > media > main-backports-src > by-pkgid > f6495a97744a8cbd109df2ac94edac84 > files > 5

compiz-fusion-plugins-main-0.6.0-2mdv2008.0.src.rpm

X-Git-Url: http://gitweb.opencompositing.org/?p=fusion%2Fplugins-main;a=blobdiff_plain;f=src%2Fworkarounds%2Fworkarounds.c;fp=src%2Fworkarounds%2Fworkarounds.c;h=feaf3badf0596b98700fcdb08382c91cba9e2e89;hp=30707010fed1671a8378837b6e3a2e3e77134eab;hb=f6c2f52156aaaf5bc3fc4718de85e1befc92dca1;hpb=66a85d9165ef37f7c49a230a07d2b47e570577ac

diff --git a/src/workarounds/workarounds.c b/src/workarounds/workarounds.c
index 3070701..feaf3ba 100644
--- a/src/workarounds/workarounds.c
+++ b/src/workarounds/workarounds.c
@@ -226,46 +226,64 @@ workaroundsDoFixes (CompWindow *w)
     /* FIXME: Is this the best way to detect a notification type window? */
     if (workaroundsGetNotificationDaemonFix (d))
     {
-        if (w->wmType == CompWindowTypeNormalMask &&
+        if (newWmType == CompWindowTypeNormalMask &&
             w->attrib.override_redirect && w->resName &&
             strcmp (w->resName, "notification-daemon") == 0)
         {
             newWmType = CompWindowTypeNotificationMask;
+	    goto AppliedFix;
         }
     }
 
-    if ((w->wmType == newWmType) && workaroundsGetFirefoxMenuFix (d))
+    if (workaroundsGetFirefoxMenuFix (d))
     {
-        if (w->wmType == CompWindowTypeNormalMask &&
+        if (newWmType == CompWindowTypeNormalMask &&
             w->attrib.override_redirect && w->resName)
 	{
 	    if ((strcasecmp (w->resName, "gecko") == 0) ||
 		(strcasecmp (w->resName, "popup") == 0))
 	    {
 		newWmType = CompWindowTypeDropdownMenuMask;
+		goto AppliedFix;
+	    }
+	}
+    }
+
+    if (workaroundsGetOooMenuFix (d))
+    {
+        if (newWmType == CompWindowTypeNormalMask &&
+            w->attrib.override_redirect && w->resName)
+	{
+	    if (strcasecmp (w->resName, "VCLSalFrame") == 0)
+	    {
+		newWmType = CompWindowTypeDropdownMenuMask;
+		goto AppliedFix;
 	    }
 	}
     }
 
     /* FIXME: Basic hack to get Java windows working correctly. */
-    if ((w->wmType == newWmType) && workaroundsGetJavaFix (d) && w->resName)
+    if (workaroundsGetJavaFix (d) && w->resName)
     {
         if ((strcmp (w->resName, "sun-awt-X11-XMenuWindow") == 0) ||
             (strcmp (w->resName, "sun-awt-X11-XWindowPeer") == 0))
         {
             newWmType = CompWindowTypeDropdownMenuMask;
+	    goto AppliedFix;
         }
         else if (strcmp (w->resName, "sun-awt-X11-XDialogPeer") == 0)
         {
             newWmType = CompWindowTypeDialogMask;
+	    goto AppliedFix;
         }
         else if (strcmp (w->resName, "sun-awt-X11-XFramePeer") == 0)
         {
             newWmType = CompWindowTypeNormalMask;
+	    goto AppliedFix;
         }
     }
 
-    if ((newWmType == w->wmType) && workaroundsGetQtFix (d))
+    if (workaroundsGetQtFix (d))
     {
         char *windowRole;
 
@@ -276,24 +294,27 @@ workaroundsDoFixes (CompWindow *w)
             if ((strcmp (windowRole, "toolTipTip") == 0) ||
                 (strcmp (windowRole, "qtooltip_label") == 0))
             {
+		free (windowRole);
                 newWmType = CompWindowTypeTooltipMask;
+		goto AppliedFix;
             }
-
-            free (windowRole);
+	    else
+	    {
+    		free (windowRole);
+	    }
         }
 
         /* fix Qt transients - FIXME: is there a better way to detect them? */
-        if (w->wmType == newWmType)
-        {
-            if (!w->resName && w->attrib.override_redirect &&
-		(w->attrib.class == InputOutput) &&
-                (w->wmType == CompWindowTypeUnknownMask))
-            {
-                newWmType = CompWindowTypeDropdownMenuMask;
-            }
+	if (!w->resName && w->attrib.override_redirect &&
+	    (w->attrib.class == InputOutput) &&
+	    (w->wmType == CompWindowTypeUnknownMask))
+	{
+	    newWmType = CompWindowTypeDropdownMenuMask;
+	    goto AppliedFix;
         }
     }
 
+AppliedFix:
     if (newWmType != w->wmType)
     {
 	WORKAROUNDS_WINDOW (w);
X-Git-Url: http://gitweb.opencompositing.org/?p=fusion%2Fplugins-main;a=blobdiff_plain;f=src%2Fworkarounds%2Fworkarounds.c;fp=src%2Fworkarounds%2Fworkarounds.c;h=c2eaebe5acb3ddc381979f3cf6763d0826d3dfb2;hp=feaf3badf0596b98700fcdb08382c91cba9e2e89;hb=fcf7c3f00d02e141973939afacf587364715ecdd;hpb=f6c2f52156aaaf5bc3fc4718de85e1befc92dca1

diff --git a/src/workarounds/workarounds.c b/src/workarounds/workarounds.c
index feaf3ba..c2eaebe 100644
--- a/src/workarounds/workarounds.c
+++ b/src/workarounds/workarounds.c
@@ -249,19 +249,6 @@ workaroundsDoFixes (CompWindow *w)
 	}
     }
 
-    if (workaroundsGetOooMenuFix (d))
-    {
-        if (newWmType == CompWindowTypeNormalMask &&
-            w->attrib.override_redirect && w->resName)
-	{
-	    if (strcasecmp (w->resName, "VCLSalFrame") == 0)
-	    {
-		newWmType = CompWindowTypeDropdownMenuMask;
-		goto AppliedFix;
-	    }
-	}
-    }
-
     /* FIXME: Basic hack to get Java windows working correctly. */
     if (workaroundsGetJavaFix (d) && w->resName)
     {