rpms/compiz-fusion/devel workarounds-windowtype-fix.patch, NONE, 1.1 compiz-fusion.spec, 1.10, 1.11

Adel Gadllah (drago01) fedora-extras-commits at redhat.com
Sat Oct 27 20:55:17 UTC 2007


Author: drago01

Update of /cvs/pkgs/rpms/compiz-fusion/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv1954

Modified Files:
	compiz-fusion.spec 
Added Files:
	workarounds-windowtype-fix.patch 
Log Message:
add upstream patch to fix bug 354601

workarounds-windowtype-fix.patch:

--- NEW FILE workarounds-windowtype-fix.patch ---
diff --git a/src/workarounds/workarounds.c b/src/workarounds/workarounds.c

--- 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);



Index: compiz-fusion.spec
===================================================================
RCS file: /cvs/pkgs/rpms/compiz-fusion/devel/compiz-fusion.spec,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- compiz-fusion.spec	23 Oct 2007 18:08:06 -0000	1.10
+++ compiz-fusion.spec	27 Oct 2007 20:54:45 -0000	1.11
@@ -2,13 +2,14 @@
 
 Name: compiz-fusion
 Version: 0.6.0       
-Release: 2%{?dist}
+Release: 3%{?dist}
 Summary: Collection of Compiz Fusion plugins for Compiz      
 
 Group: User Interface/Desktops        
 License: GPLv2+       
 URL: http://compiz-fusion.org            
-Source0: http://releases.compiz-fusion.org/0.6.0/%{name}-plugins-main-%{version}.tar.bz2   
+Source0: http://releases.compiz-fusion.org/0.6.0/%{name}-plugins-main-%{version}.tar.bz2  
+Patch0: workarounds-windowtype-fix.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 # libdrm is not available on these arches
@@ -61,6 +62,7 @@
 
 %prep
 %setup -q -n %{name}-plugins-main-%{version}
+%patch0 -p1 -b .windowtype-fix
 
 %build
 %configure --enable-schemas
@@ -125,6 +127,9 @@
 
 
 %changelog
+* Sat Oct 27 2007 Adel Gadllah <adel.gadllah at gmail.com> 0.6.0-3
+- Apply patch from upstream to fix RH #354601
+
 * Tue Oct 22 2007 Adel Gadllah <adel.gadllah at gmail.com> 0.6.0-2
 - Obsolete beryl-plugins
 




More information about the fedora-extras-commits mailing list