Author: olivier
Date: 2006-10-12 20:22:20 +0000 (Thu, 12 Oct 2006)
New Revision: 23373

Modified:
   xfwm4/trunk/src/compositor.c
   xfwm4/trunk/src/main.c
Log:
Fix automatic compositing w/out breaking manual compositing (take 3!)

Modified: xfwm4/trunk/src/compositor.c
===================================================================
--- xfwm4/trunk/src/compositor.c        2006-10-12 14:16:34 UTC (rev 23372)
+++ xfwm4/trunk/src/compositor.c        2006-10-12 20:22:20 UTC (rev 23373)
@@ -2738,11 +2738,6 @@
     display_info = screen_info->display_info;
     screen_info->compositor_active = FALSE;
 
-    if (!compositorIsUsable (display_info))
-    {
-        return FALSE;
-    }
-
     gdk_error_trap_push ();
     XCompositeRedirectSubwindows (display_info->dpy, screen_info->xroot, 
display_info->composite_mode);
     XSync (display_info->dpy, FALSE);
@@ -2756,6 +2751,7 @@
     if (display_info->composite_mode == CompositeRedirectAutomatic)
     {
         /* That's enough for automatic compositing */
+        TRACE ("Automatic compositing enabled");
         return TRUE;
     }
 
@@ -2791,6 +2787,7 @@
 
     XClearArea (display_info->dpy, screen_info->xroot, 0, 0, 0, 0, TRUE);
     compositorSetCMSelection (screen_info, screen_info->xfwm4_win);
+    TRACE ("Manual compositing enabled");
 
     return TRUE;
 #else

Modified: xfwm4/trunk/src/main.c
===================================================================
--- xfwm4/trunk/src/main.c      2006-10-12 14:16:34 UTC (rev 23372)
+++ xfwm4/trunk/src/main.c      2006-10-12 20:22:20 UTC (rev 23373)
@@ -76,9 +76,11 @@
 #define MAIN_EVENT_MASK BASE_EVENT_MASK
 #endif /* HAVE_COMPOSITOR */
 
-#define COMPOSITOR_MODE_OFF             0
-#define COMPOSITOR_MODE_AUTO            1
-#define COMPOSITOR_MODE_MANUAL          2
+enum {
+    COMPOSITOR_MODE_OFF = 0,
+    COMPOSITOR_MODE_AUTO,
+    COMPOSITOR_MODE_MANUAL
+};
 
 #ifndef DEBUG
 /* For what, IEEE Std 1003.1-2001, Section 12.2, Utility Syntax Guidelines.*/
@@ -354,22 +356,22 @@
     gchar *rvalue;
     gint retval;
 
-    retval = 2;
+    retval = COMPOSITOR_MODE_MANUAL;
     rvalue = strrchr (s, '=');
     if (rvalue)
     {
         rvalue++;
         if (!strcmp (rvalue, "off"))
         {
-            retval = 0;
+            retval = COMPOSITOR_MODE_OFF;
         }
         else if (!strcmp (rvalue, "auto"))
         {
-            retval = 1;
+            retval = COMPOSITOR_MODE_AUTO;
         }
         else if (!strcmp (rvalue, "on"))
         {
-            retval = 2;
+            retval = COMPOSITOR_MODE_MANUAL;
         }
         else
         {
@@ -449,24 +451,21 @@
             return -2;
         }
 
-        if (compositor_mode)
+        if (compositor_mode == COMPOSITOR_MODE_AUTO)
         {
-            gboolean xfwm4_compositor;
-
-            xfwm4_compositor = (compositor_mode > COMPOSITOR_MODE_AUTO);
-            if ((screen_info->params->use_compositing) || (compositor_mode == 
COMPOSITOR_MODE_AUTO))
+            compositorManageScreen (screen_info);
+        }
+        else if ((compositor_mode == COMPOSITOR_MODE_MANUAL) && 
(screen_info->params->use_compositing))
+        {
+            if (compositorManageScreen (screen_info))
             {
-                xfwm4_compositor = compositorManageScreen (screen_info);
-            }
-            if (xfwm4_compositor)
-            {
                 /*
                    Acquire selection on XFWM4_COMPOSITING_MANAGER to advertise 
our own
                    compositing manager (used by WM tweaks to determine whether 
or not
                    show the "compositor" tab.
                  */
                 setAtomIdManagerOwner (display_info, XFWM4_COMPOSITING_MANAGER,
-                                     screen_info->xroot, 
screen_info->xfwm4_win);
+                                       screen_info->xroot, 
screen_info->xfwm4_win);
             }
         }
 

_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to