public static void SetWinOpacity(Gtk.Window win, double opacity) { CompositeUtils.ChangeProperty(win.GdkWindow, Atom.Intern("_NET_WM_WINDOW_OPACITY", false), Atom.Intern("CARDINAL", false), PropMode.Replace, new uint[] { (uint)(0xffffffff * opacity) } ); }
public static bool IsComposited(Screen screen) { bool composited; try { composited = gdk_screen_is_composited(screen.Handle); } catch (EntryPointNotFoundException) { Atom atom = Atom.Intern(String.Format("_NET_WM_CM_S{0}", screen.Number), false); composited = Gdk.Selection.OwnerGetForDisplay(screen.Display, atom) != null; } // FIXME check for WINDOW_OPACITY so that we support compositing on older composite manager // versions before they started supporting the real check given above if (!composited) { composited = CompositeUtils.SupportsHint(screen, "_NET_WM_WINDOW_OPACITY"); } return(composited); }