rpms/compiz-fusion/devel compiz-fusion-0.7.6-winrules.patch, NONE, 1.1 compiz-fusion.spec, 1.36, 1.37

Adel Gadllah drago01 at fedoraproject.org
Fri Oct 24 10:04:26 UTC 2008


Author: drago01

Update of /cvs/pkgs/rpms/compiz-fusion/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv22056

Modified Files:
	compiz-fusion.spec 
Added Files:
	compiz-fusion-0.7.6-winrules.patch 
Log Message:
Fix up winrules plugin

compiz-fusion-0.7.6-winrules.patch:

--- NEW FILE compiz-fusion-0.7.6-winrules.patch ---
diff -upNr compiz-fusion-plugins-main-0.7.6.orign/src/winrules/winrules.c compiz-fusion-plugins-main-0.7.6/src/winrules/winrules.c
--- compiz-fusion-plugins-main-0.7.6.orign/src/winrules/winrules.c	2008-05-29 23:26:23.000000000 +0200
+++ compiz-fusion-plugins-main-0.7.6/src/winrules/winrules.c	2008-10-24 11:58:46.000000000 +0200
@@ -23,13 +23,6 @@
 
 #include <X11/Xatom.h>
 
-#define WINRULES_TARGET_WINDOWS (CompWindowTypeNormalMask |	\
-				 CompWindowTypeDialogMask |	\
-				 CompWindowTypeModalDialogMask |\
-				 CompWindowTypeFullscreenMask |	\
-				 CompWindowTypeUnknownMask)
-
-
 #define WINRULES_SCREEN_OPTION_SKIPTASKBAR_MATCH  0
 #define WINRULES_SCREEN_OPTION_SKIPPAGER_MATCH	  1
 #define WINRULES_SCREEN_OPTION_ABOVE_MATCH	  2
@@ -124,13 +117,15 @@ isWinrulesWindow (CompWindow *w)
     if (w->attrib.override_redirect)
 	return FALSE;
 
-    if (!(w->type & WINRULES_TARGET_WINDOWS))
+    if (w->wmType & (CompWindowTypeDockMask | CompWindowTypeDesktopMask))
 	return FALSE;
 
     return TRUE;
 }
 
-/* FIXME? Directly set inputHint, not a problem for now */
+/* FIXME? Directly set inputHint, not a problem for now
+   --> better should wrap into focusWindow(), only problem is focus
+       on MapRequest */
 static void
 winrulesSetNoFocus (CompWindow *w,
 		    int        optNum)
@@ -460,42 +455,6 @@ winrulesSetScreenOption (CompPlugin *plu
     return FALSE;
 }
 
-static void
-winrulesHandleEvent (CompDisplay *d,
-                     XEvent      *event)
-{
-    CompWindow *w;
-
-    WINRULES_DISPLAY (d);
-
-    if (event->type == MapRequest)
-    {
-	w = findWindowAtDisplay (d, event->xmap.window);
-	if (w)
-	    winrulesSetNoFocus (w, WINRULES_SCREEN_OPTION_NOFOCUS_MATCH);
-    }
-
-    UNWRAP (wd, d, handleEvent);
-    (*d->handleEvent) (d, event);
-    WRAP (wd, d, handleEvent, winrulesHandleEvent);
-}
-
-static void
-winrulesGetAllowedActionsForWindow (CompWindow   *w,
-				    unsigned int *setActions,
-				    unsigned int *clearActions)
-{
-    WINRULES_SCREEN (w->screen);
-    WINRULES_WINDOW (w);
-
-    UNWRAP (ws, w->screen, getAllowedActionsForWindow);
-    (*w->screen->getAllowedActionsForWindow) (w, setActions, clearActions);
-    WRAP (ws, w->screen, getAllowedActionsForWindow,
-          winrulesGetAllowedActionsForWindow);
-
-    *clearActions |= ~ww->allowedActions;
-}
-
 static Bool
 winrulesApplyRules (void *closure)
 {
@@ -555,6 +514,44 @@ winrulesApplyRules (void *closure)
     return FALSE;
 }
 
+static void
+winrulesHandleEvent (CompDisplay *d,
+                     XEvent      *event)
+{
+    CompWindow *w;
+
+    WINRULES_DISPLAY (d);
+
+    if (event->type == MapRequest)
+    {
+	w = findWindowAtDisplay (d, event->xmap.window);
+	if (w)
+	{
+	    winrulesSetNoFocus (w, WINRULES_SCREEN_OPTION_NOFOCUS_MATCH);
+	    winrulesApplyRules (w);
+	}
+    }
+
+    UNWRAP (wd, d, handleEvent);
+    (*d->handleEvent) (d, event);
+    WRAP (wd, d, handleEvent, winrulesHandleEvent);
+}
+
+static void
+winrulesGetAllowedActionsForWindow (CompWindow   *w,
+				    unsigned int *setActions,
+				    unsigned int *clearActions)
+{
+    WINRULES_SCREEN (w->screen);
+    WINRULES_WINDOW (w);
+
+    UNWRAP (ws, w->screen, getAllowedActionsForWindow);
+    (*w->screen->getAllowedActionsForWindow) (w, setActions, clearActions);
+    WRAP (ws, w->screen, getAllowedActionsForWindow,
+          winrulesGetAllowedActionsForWindow);
+
+    *clearActions |= ~ww->allowedActions;
+}
 
 static void
 winrulesMatchExpHandlerChanged (CompDisplay *d)


Index: compiz-fusion.spec
===================================================================
RCS file: /cvs/pkgs/rpms/compiz-fusion/devel/compiz-fusion.spec,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- compiz-fusion.spec	15 Jul 2008 17:36:35 -0000	1.36
+++ compiz-fusion.spec	24 Oct 2008 10:03:56 -0000	1.37
@@ -2,7 +2,7 @@
 
 Name: compiz-fusion
 Version: 0.7.6       
-Release: 6%{?dist}
+Release: 7%{?dist}
 Summary: Collection of Compiz Fusion plugins for Compiz      
 
 Group: User Interface/Desktops        
@@ -10,6 +10,7 @@
 URL: http://compiz-fusion.org            
 Source0: http://releases.compiz-fusion.org/%{version}/%{name}-plugins-main-%{version}.tar.bz2  
 Patch0: compiz-fusion-0.7.6-ppc64-fix.patch
+Patch1: compiz-fusion-0.7.6-winrules.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 # libdrm is not available on these arches
@@ -63,6 +64,7 @@
 %prep
 %setup -q -n %{name}-plugins-main-%{version}
 %patch0 -p1 -b .ppc64
+%patch1 -p1 -b .winrules
 
 %build
 %configure --enable-schemas
@@ -133,6 +135,9 @@
 
 
 %changelog
+* Fri Oct 24 2008 Adel Gadllah <adel.gadllah at gmail.com> 0.7.6-7
+- Fix up winrules plugin (backport from git head)
+
 * Tue Jul 15 2008 Adel Gadllah <adel.gadllah at gmail.com> 0.7.6-6
 - Build on ppc64 too
 - Add patch to fix build on ppc64




More information about the fedora-extras-commits mailing list