diff --git a/src/compositor.c b/src/compositor.c index 6c0cac398d240d322514702220a02d0590ad7f2c..91070bfdab8ea9f949d9181d0f9181de42ace83a 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -2738,11 +2738,6 @@ compositorManageScreen (ScreenInfo *screen_info) 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 @@ compositorManageScreen (ScreenInfo *screen_info) if (display_info->composite_mode == CompositeRedirectAutomatic) { /* That's enough for automatic compositing */ + TRACE ("Automatic compositing enabled"); return TRUE; } @@ -2791,6 +2787,7 @@ compositorManageScreen (ScreenInfo *screen_info) 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 diff --git a/src/main.c b/src/main.c index 84141ec84fe141e2dfd991a0cd1c6be36fd231b1..38de0c86c01e98d7a6a007097d293bed26b53dfa 100644 --- a/src/main.c +++ b/src/main.c @@ -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 @@ parse_compositor (const gchar *s) 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,16 +451,13 @@ initialize (int argc, char **argv, gint compositor_mode) 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)) - { - xfwm4_compositor = compositorManageScreen (screen_info); - } - if (xfwm4_compositor) + compositorManageScreen (screen_info); + } + else if ((compositor_mode == COMPOSITOR_MODE_MANUAL) && (screen_info->params->use_compositing)) + { + if (compositorManageScreen (screen_info)) { /* Acquire selection on XFWM4_COMPOSITING_MANAGER to advertise our own @@ -466,7 +465,7 @@ initialize (int argc, char **argv, gint compositor_mode) show the "compositor" tab. */ setAtomIdManagerOwner (display_info, XFWM4_COMPOSITING_MANAGER, - screen_info->xroot, screen_info->xfwm4_win); + screen_info->xroot, screen_info->xfwm4_win); } }