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