### Method

# Gdk Surface set_opaque_region

#### Declaration [src]

    void
    gdk_surface_set_opaque_region (
      GdkSurface* surface,
      cairo_region_t* region
    )

#### Description [src]

Marks a region of the `GdkSurface` as opaque.

For optimisation purposes, compositing window managers may like to not draw obscured regions of surfaces, or turn off blending during for these regions. With RGB windows with no transparency, this is just the shape of the window, but with ARGB32 windows, the compositor does not know what regions of the window are transparent or not.

This function only works for toplevel surfaces.

GTK will update this property automatically if the `surface` background is opaque, as we know where the opaque regions are. If your surface background is not opaque, please update this property in your GtkWidgetClass.css_changed handler.

#### Parameters

`region`

  Type: `cairo_region_t`

  A region, or `NULL` to make the entire surface opaque.

  The argument can be `NULL`.
  The data is owned by the caller of the method.