<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:doc="http://www.gtk.org/introspection/doc/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Clutter" version="17"/>
  <include name="Cogl" version="17"/>
  <include name="GDesktopEnums" version="3.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Mtk" version="17"/>
  <include name="xfixes" version="4.0"/>
  <include name="xlib" version="2.0"/>
  <package name="libmutter-17"/>
  <doc:format name="gi-docgen"/>
  <namespace name="Meta"
             version="17"
             shared-library="libmutter-17.so.0"
             c:identifier-prefixes="Meta"
             c:symbol-prefixes="meta">
    <class name="Backend"
           c:symbol-prefix="backend"
           c:type="MetaBackend"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="MetaBackend"
           glib:get-type="meta_backend_get_type"
           glib:type-struct="BackendClass">
      <doc xml:space="preserve"
           filename="src/backends/meta-backend.c"
           line="23">Handles monitor config, modesetting, cursor sprites, ...

MetaBackend is the abstraction that deals with several things like:

- Modesetting (depending on the backend, this can be done either by X or KMS)
- Initializing the [struct@Meta.Settings]
- Setting up Monitor configuration
- Input device configuration (using the #ClutterDeviceManager)
- Creating the #MetaRenderer
- Setting up the stage of the scene graph (using [class@Meta.Stage])
- Creating the object that deals with the cursor (using [class@Meta.CursorTracker])
    and its possible pointer constraint (using #MetaPointerConstraint)
- Setting the cursor sprite (using #MetaCursorRenderer)
- Interacting with logind (using the appropriate D-Bus interface)
- Querying logind (over D-Bus) to know when the lid is closed
- Setup Remote Desktop / Screencasting (#MetaRemoteDesktop)
- Setup the #MetaEgl object

Note that the #MetaBackend is not a subclass of [class@Clutter.Backend].
It is responsible for creating the correct one, based on the backend that is
used (#MetaBackendNative or #MetaBackendX11).</doc>
      <source-position filename="src/meta/meta-backend.h" line="43"/>
      <implements name="Gio.Initable"/>
      <method name="freeze_keyboard"
              c:identifier="meta_backend_freeze_keyboard">
        <source-position filename="src/meta/meta-backend.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="uint32_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_capabilities"
              c:identifier="meta_backend_get_capabilities"
              glib:get-property="capabilities">
        <source-position filename="src/meta/meta-backend.h" line="115"/>
        <return-value transfer-ownership="none">
          <type name="BackendCapabilities" c:type="MetaBackendCapabilities"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_context"
              c:identifier="meta_backend_get_context"
              glib:get-property="context">
        <source-position filename="src/meta/meta-backend.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-backend.c"
               line="1721">The #MetaContext</doc>
          <type name="Context" c:type="MetaContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-backend.c"
                 line="1719">the #MetaBackend</doc>
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_core_idle_monitor"
              c:identifier="meta_backend_get_core_idle_monitor">
        <source-position filename="src/meta/meta-backend.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-backend.c"
               line="1492">the #MetaIdleMonitor that tracks server-global
idle time for all devices.</doc>
          <type name="IdleMonitor" c:type="MetaIdleMonitor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_logical_monitor"
              c:identifier="meta_backend_get_current_logical_monitor">
        <doc xml:space="preserve"
             filename="src/backends/meta-backend.c"
             line="1750">Returns the [class@Meta.LogicalMonitor] that currently has the mouse pointer.</doc>
        <source-position filename="src/meta/meta-backend.h" line="124"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/backends/meta-backend.c"
               line="1756">The current [class@Meta.LogicalMonitor].</doc>
          <type name="LogicalMonitor" c:type="MetaLogicalMonitor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-backend.c"
                 line="1752">A #MetaBackend</doc>
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cursor_tracker"
              c:identifier="meta_backend_get_cursor_tracker">
        <source-position filename="src/meta/meta-backend.h" line="121"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-backend.c"
               line="1569">The cursor tracker corresponding to @backend</doc>
          <type name="CursorTracker" c:type="MetaCursorTracker*"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-backend.c"
                 line="1567">a #MetaBackend</doc>
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dnd" c:identifier="meta_backend_get_dnd">
        <doc xml:space="preserve"
             filename="src/backends/meta-backend.c"
             line="1939">Gets the global #MetaDnd that's managed by this backend.</doc>
        <source-position filename="src/meta/meta-backend.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-backend.c"
               line="1945">the #MetaDnd</doc>
          <type name="Dnd" c:type="MetaDnd*"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-backend.c"
                 line="1941">A #MetaDnd</doc>
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_monitor_manager"
              c:identifier="meta_backend_get_monitor_manager">
        <source-position filename="src/meta/meta-backend.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-backend.c"
               line="1514">A #MetaMonitorManager</doc>
          <type name="MonitorManager" c:type="MetaMonitorManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_orientation_manager"
              c:identifier="meta_backend_get_orientation_manager">
        <source-position filename="src/meta/meta-backend.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-backend.c"
               line="1555">A #MetaOrientationManager</doc>
          <type name="OrientationManager" c:type="MetaOrientationManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_remote_access_controller"
              c:identifier="meta_backend_get_remote_access_controller">
        <source-position filename="src/meta/meta-backend.h" line="94"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-backend.c"
               line="1671">The #MetaRemoteAccessController</doc>
          <type name="RemoteAccessController"
                c:type="MetaRemoteAccessController*"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-backend.c"
                 line="1669">A #MetaBackend</doc>
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_settings"
              c:identifier="meta_backend_get_settings"
              introspectable="0">
        <source-position filename="src/meta/meta-backend.h" line="82"/>
        <return-value>
          <type name="Settings" c:type="MetaSettings*"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stage" c:identifier="meta_backend_get_stage">
        <doc xml:space="preserve"
             filename="src/backends/meta-backend.c"
             line="1844">Gets the global #ClutterStage that's managed by this backend.</doc>
        <source-position filename="src/meta/meta-backend.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-backend.c"
               line="1850">the #ClutterStage</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-backend.c"
                 line="1846">A #MetaBackend</doc>
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_headless" c:identifier="meta_backend_is_headless">
        <source-position filename="src/meta/meta-backend.h" line="100"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_rendering_hardware_accelerated"
              c:identifier="meta_backend_is_rendering_hardware_accelerated">
        <source-position filename="src/meta/meta-backend.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-backend.c"
               line="1698">%TRUE if the rendering is hardware accelerated, otherwise
%FALSE.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-backend.c"
                 line="1696">A #MetaBackend</doc>
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="renderdoc_capture"
              c:identifier="meta_backend_renderdoc_capture">
        <source-position filename="src/meta/meta-backend.h" line="118"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_keymap_async"
              c:identifier="meta_backend_set_keymap_async"
              glib:finish-func="set_keymap_finish">
        <source-position filename="src/meta/meta-backend.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
          <parameter name="layouts" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="variants" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="options" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="model" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_keymap_finish"
              c:identifier="meta_backend_set_keymap_finish"
              throws="1">
        <source-position filename="src/meta/meta-backend.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_keymap_layout_group_async"
              c:identifier="meta_backend_set_keymap_layout_group_async"
              glib:finish-func="set_keymap_layout_group_finish">
        <source-position filename="src/meta/meta-backend.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
          <parameter name="idx" transfer-ownership="none">
            <type name="guint32" c:type="uint32_t"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_keymap_layout_group_finish"
              c:identifier="meta_backend_set_keymap_layout_group_finish"
              throws="1">
        <source-position filename="src/meta/meta-backend.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unfreeze_keyboard"
              c:identifier="meta_backend_unfreeze_keyboard">
        <source-position filename="src/meta/meta-backend.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="uint32_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="ungrab_keyboard"
              c:identifier="meta_backend_ungrab_keyboard">
        <source-position filename="src/meta/meta-backend.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="uint32_t"/>
          </parameter>
        </parameters>
      </method>
      <property name="capabilities"
                transfer-ownership="none"
                getter="get_capabilities"
                default-value="META_BACKEND_CAPABILITY_NONE">
        <type name="BackendCapabilities"/>
      </property>
      <property name="context"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_context">
        <type name="Context"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="gpu-added" when="last" introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="gpu"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/backends/meta-backend.c"
                 line="949">the #MetaGpu</doc>
            <type name="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="keymap-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="keymap-layout-group-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="last-device-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Clutter.InputDevice"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="lid-is-closed-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="prepare-shutdown" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <bitfield name="BackendCapabilities"
              glib:type-name="MetaBackendCapabilities"
              glib:get-type="meta_backend_capabilities_get_type"
              c:type="MetaBackendCapabilities">
      <member name="none"
              value="0"
              c:identifier="META_BACKEND_CAPABILITY_NONE"
              glib:nick="none"
              glib:name="META_BACKEND_CAPABILITY_NONE">
      </member>
      <member name="barriers"
              value="1"
              c:identifier="META_BACKEND_CAPABILITY_BARRIERS"
              glib:nick="barriers"
              glib:name="META_BACKEND_CAPABILITY_BARRIERS">
      </member>
    </bitfield>
    <record name="BackendClass"
            c:type="MetaBackendClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Backend">
      <source-position filename="src/meta/meta-backend.h" line="43"/>
    </record>
    <class name="Background"
           c:symbol-prefix="background"
           c:type="MetaBackground"
           parent="GObject.Object"
           glib:type-name="MetaBackground"
           glib:get-type="meta_background_get_type"
           glib:type-struct="BackgroundClass">
      <doc xml:space="preserve"
           filename="src/meta/meta-background.h"
           line="28">This class handles tracking and painting the root window background.

By integrating with [class@Meta.WindowGroup] we can avoid painting parts of
the background that are obscured by other windows.</doc>
      <source-position filename="src/meta/meta-background.h" line="40"/>
      <constructor name="new" c:identifier="meta_background_new">
        <source-position filename="src/meta/meta-background.h" line="50"/>
        <return-value transfer-ownership="full">
          <type name="Background" c:type="MetaBackground*"/>
        </return-value>
        <parameters>
          <parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="refresh_all" c:identifier="meta_background_refresh_all">
        <source-position filename="src/meta/meta-background.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <method name="set_blend" c:identifier="meta_background_set_blend">
        <source-position filename="src/meta/meta-background.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Background" c:type="MetaBackground*"/>
          </instance-parameter>
          <parameter name="file1" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="file2" transfer-ownership="none">
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="blend_factor" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <type name="GDesktopEnums.BackgroundStyle"
                  c:type="GDesktopBackgroundStyle"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color" c:identifier="meta_background_set_color">
        <source-position filename="src/meta/meta-background.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Background" c:type="MetaBackground*"/>
          </instance-parameter>
          <parameter name="color" transfer-ownership="none">
            <type name="Cogl.Color" c:type="CoglColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_file" c:identifier="meta_background_set_file">
        <doc xml:space="preserve"
             filename="src/compositor/meta-background.c"
             line="991">Set the background to @file</doc>
        <source-position filename="src/meta/meta-background.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background.c"
                 line="993">a #MetaBackground</doc>
            <type name="Background" c:type="MetaBackground*"/>
          </instance-parameter>
          <parameter name="file"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background.c"
                 line="994">a #GFile representing the background file</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="style" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background.c"
                 line="995">the background style to apply</doc>
            <type name="GDesktopEnums.BackgroundStyle"
                  c:type="GDesktopBackgroundStyle"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_gradient" c:identifier="meta_background_set_gradient">
        <source-position filename="src/meta/meta-background.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Background" c:type="MetaBackground*"/>
          </instance-parameter>
          <parameter name="shading_direction" transfer-ownership="none">
            <type name="GDesktopEnums.BackgroundShading"
                  c:type="GDesktopBackgroundShading"/>
          </parameter>
          <parameter name="color" transfer-ownership="none">
            <type name="Cogl.Color" c:type="CoglColor*"/>
          </parameter>
          <parameter name="second_color" transfer-ownership="none">
            <type name="Cogl.Color" c:type="CoglColor*"/>
          </parameter>
        </parameters>
      </method>
      <property name="meta-display"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Display"/>
      </property>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <class name="BackgroundActor"
           c:symbol-prefix="background_actor"
           c:type="MetaBackgroundActor"
           parent="Clutter.Actor"
           glib:type-name="MetaBackgroundActor"
           glib:get-type="meta_background_actor_get_type"
           glib:type-struct="BackgroundActorClass">
      <doc xml:space="preserve"
           filename="src/meta/meta-background-actor.h"
           line="28">This class handles tracking and painting the root window background.

By integrating with [class@Meta.WindowGroup] we can avoid painting parts of
the background that are obscured by other windows.</doc>
      <source-position filename="src/meta/meta-background-actor.h" line="40"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <constructor name="new" c:identifier="meta_background_actor_new">
        <doc xml:space="preserve"
             filename="src/compositor/meta-background-actor.c"
             line="168">Creates a new actor to draw the background for the given monitor.</doc>
        <source-position filename="src/meta/meta-background-actor.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-background-actor.c"
               line="174">the newly created background actor</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </parameter>
          <parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background-actor.c"
                 line="170">Index of the monitor for which to draw the background</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="meta-display"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Display"/>
      </property>
      <property name="monitor"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
    </class>
    <record name="BackgroundActorClass"
            c:type="MetaBackgroundActorClass"
            glib:is-gtype-struct-for="BackgroundActor">
      <source-position filename="src/meta/meta-background-actor.h" line="40"/>
      <field name="parent_class">
        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
      </field>
    </record>
    <record name="BackgroundClass"
            c:type="MetaBackgroundClass"
            glib:is-gtype-struct-for="Background">
      <source-position filename="src/meta/meta-background.h" line="40"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="BackgroundContent"
           c:symbol-prefix="background_content"
           c:type="MetaBackgroundContent"
           parent="GObject.Object"
           glib:type-name="MetaBackgroundContent"
           glib:get-type="meta_background_content_get_type"
           glib:type-struct="BackgroundContentClass">
      <doc xml:space="preserve"
           filename="src/compositor/meta-background-content.c"
           line="23">This class handles tracking and painting the root window background.

By integrating with [class@Meta.WindowGroup] we can avoid painting parts of
the background that are obscured by other windows.

The overall model drawing model of this content is that we have one
texture, or two interpolated textures, possibly with alpha or
margins that let the underlying background show through, blended
over a solid color or a gradient. The result of that combination
can then be affected by a "vignette" that darkens the background
away from a central point (or as a no-GLSL fallback, simply darkens
the background) and by overall opacity.

As of GNOME 3.14, GNOME is only using a fraction of this when the
user sets the background through the control center - what can be
set is:

 A single image without a border
 An animation of images without a border that blend together,
  with the blend changing every 4-5 minutes
 A solid color with a repeated noise texture blended over it

This all is pretty easy to do in a fragment shader, except when:

 A) We don't have GLSL - in this case, the operation of
    interpolating the two textures and blending the result over the
    background can't be expressed with Cogl's fixed-function layer
    combining (which is confined to what GL's texture environment
    combining can do) So we can only handle the above directly if
    there are no margins or alpha.

 B) The image textures are sliced. Texture size limits on older
    hardware (pre-965 intel hardware, r300, etc.)  is often 2048,
    and it would be common to use a texture larger than this for a
    background and expect it to be scaled down. Cogl can compensate
    for this by breaking the texture up into multiple textures, but
    can't multitexture with sliced textures. So we can only handle
    the above if there's a single texture.

However, even when we *can* represent everything in a single pass,
it's not necessarily efficient. If we want to draw a 1024x768
background, it's pretty inefficient to bilinearly texture from
two 2560x1440 images and mix that. So the drawing model we take
here is that MetaBackground generates a single texture (which
might be a 1x1 texture for a solid color, or a 1x2 texture for a
gradient, or a repeated texture for wallpaper, or a pre-rendered
texture the size of the screen), and we draw with that, possibly
adding the vignette and opacity.</doc>
      <source-position filename="src/meta/meta-background-content.h"
                       line="32"/>
      <implements name="Clutter.Content"/>
      <function name="new" c:identifier="meta_background_content_new">
        <doc xml:space="preserve"
             filename="src/compositor/meta-background-content.c"
             line="1032">Creates a new actor to draw the background for the given monitor.</doc>
        <source-position filename="src/meta/meta-background-content.h"
                         line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/compositor/meta-background-content.c"
               line="1039">the newly created background actor</doc>
          <type name="Clutter.Content" c:type="ClutterContent*"/>
        </return-value>
        <parameters>
          <parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background-content.c"
                 line="1034">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </parameter>
          <parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background-content.c"
                 line="1035">Index of the monitor for which to draw the background</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </function>
      <method name="set_background"
              c:identifier="meta_background_content_set_background"
              glib:set-property="background">
        <source-position filename="src/meta/meta-background-content.h"
                         line="43"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BackgroundContent" c:type="MetaBackgroundContent*"/>
          </instance-parameter>
          <parameter name="background" transfer-ownership="none">
            <type name="Background" c:type="MetaBackground*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_gradient"
              c:identifier="meta_background_content_set_gradient"
              glib:set-property="gradient">
        <source-position filename="src/meta/meta-background-content.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BackgroundContent" c:type="MetaBackgroundContent*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="tone_start" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rounded_clip_bounds"
              c:identifier="meta_background_content_set_rounded_clip_bounds">
        <doc xml:space="preserve"
             filename="src/compositor/meta-background-content.c"
             line="1180">Sets the bounding clip rectangle of the #MetaBackgroundContent that's used
when a rounded clip set via meta_background_content_set_rounded_clip_radius()
is in effect, set it to  %NULL to use no bounding clip, rounding the edges
of the full texture.</doc>
        <source-position filename="src/meta/meta-background-content.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background-content.c"
                 line="1182">The #MetaBackgroundContent</doc>
            <type name="BackgroundContent" c:type="MetaBackgroundContent*"/>
          </instance-parameter>
          <parameter name="bounds"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background-content.c"
                 line="1183">The new bounding clip rectangle, or %NULL</doc>
            <type name="Graphene.Rect" c:type="const graphene_rect_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rounded_clip_radius"
              c:identifier="meta_background_content_set_rounded_clip_radius"
              glib:set-property="rounded-clip-radius">
        <source-position filename="src/meta/meta-background-content.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BackgroundContent" c:type="MetaBackgroundContent*"/>
          </instance-parameter>
          <parameter name="radius" transfer-ownership="none">
            <type name="gfloat" c:type="float"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_vignette"
              c:identifier="meta_background_content_set_vignette"
              glib:set-property="vignette">
        <source-position filename="src/meta/meta-background-content.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="BackgroundContent" c:type="MetaBackgroundContent*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="brightness" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="sharpness" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <property name="background"
                writable="1"
                transfer-ownership="none"
                setter="set_background">
        <type name="Background"/>
      </property>
      <property name="brightness"
                writable="1"
                transfer-ownership="none"
                default-value="1.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="gradient"
                writable="1"
                transfer-ownership="none"
                setter="set_gradient"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="gradient-height"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="gradient-max-darkness"
                writable="1"
                transfer-ownership="none"
                default-value="0.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="meta-display"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Display"/>
      </property>
      <property name="monitor"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="rounded-clip-radius"
                writable="1"
                transfer-ownership="none"
                setter="set_rounded_clip_radius"
                default-value="0.000000">
        <type name="gfloat" c:type="gfloat"/>
      </property>
      <property name="vignette"
                writable="1"
                transfer-ownership="none"
                setter="set_vignette"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="vignette-sharpness"
                writable="1"
                transfer-ownership="none"
                default-value="0.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
    </class>
    <record name="BackgroundContentClass"
            c:type="MetaBackgroundContentClass"
            glib:is-gtype-struct-for="BackgroundContent">
      <source-position filename="src/meta/meta-background-content.h"
                       line="32"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="BackgroundGroup"
           c:symbol-prefix="background_group"
           c:type="MetaBackgroundGroup"
           parent="Clutter.Actor"
           glib:type-name="MetaBackgroundGroup"
           glib:get-type="meta_background_group_get_type"
           glib:type-struct="BackgroundGroupClass">
      <doc xml:space="preserve"
           filename="src/compositor/meta-background-group.c"
           line="3">Container for background actors

This class is a subclass of ClutterActor with special handling for
MetaBackgroundActor/MetaBackgroundGroup when painting children.
It makes sure to only draw the parts of the backgrounds not
occluded by opaque windows.

See #MetaWindowGroup for more information behind the motivation,
and details on implementation.</doc>
      <source-position filename="src/meta/meta-background-group.h" line="20"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <constructor name="new" c:identifier="meta_background_group_new">
        <source-position filename="src/meta/meta-background-group.h"
                         line="23"/>
        <return-value transfer-ownership="none">
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="Clutter.Actor" c:type="ClutterActor"/>
      </field>
    </class>
    <record name="BackgroundGroupClass"
            c:type="MetaBackgroundGroupClass"
            glib:is-gtype-struct-for="BackgroundGroup">
      <source-position filename="src/meta/meta-background-group.h" line="20"/>
      <field name="parent_class">
        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
      </field>
    </record>
    <class name="BackgroundImage"
           c:symbol-prefix="background_image"
           c:type="MetaBackgroundImage"
           parent="GObject.Object"
           glib:type-name="MetaBackgroundImage"
           glib:get-type="meta_background_image_get_type"
           glib:type-struct="BackgroundImageClass">
      <doc xml:space="preserve"
           filename="src/compositor/meta-background-image.c"
           line="53">Represents a loaded or loading background image.</doc>
      <source-position filename="src/meta/meta-background-image.h" line="34"/>
      <method name="get_success"
              c:identifier="meta_background_image_get_success">
        <doc xml:space="preserve"
             filename="src/compositor/meta-background-image.c"
             line="433">This function is a convenience function for checking for success,
without having to call meta_background_image_get_texture() and
handle the return of a Cogl type.</doc>
        <source-position filename="src/meta/meta-background-image.h"
                         line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-background-image.c"
               line="441">%TRUE if loading completed successfully, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background-image.c"
                 line="435">a #MetaBackgroundImage</doc>
            <type name="BackgroundImage" c:type="MetaBackgroundImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_texture"
              c:identifier="meta_background_image_get_texture">
        <source-position filename="src/meta/meta-background-image.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-background-image.c"
               line="455">a #CoglTexture if loading succeeded; if
 loading failed or has not yet finished, %NULL.</doc>
          <type name="Cogl.Texture" c:type="CoglTexture*"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background-image.c"
                 line="453">a #MetaBackgroundImage</doc>
            <type name="BackgroundImage" c:type="MetaBackgroundImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_loaded" c:identifier="meta_background_image_is_loaded">
        <source-position filename="src/meta/meta-background-image.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-background-image.c"
               line="423">%TRUE if loading has already completed, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="image" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background-image.c"
                 line="421">a #MetaBackgroundImage</doc>
            <type name="BackgroundImage" c:type="MetaBackgroundImage*"/>
          </instance-parameter>
        </parameters>
      </method>
      <glib:signal name="loaded" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <class name="BackgroundImageCache"
           c:symbol-prefix="background_image_cache"
           c:type="MetaBackgroundImageCache"
           parent="GObject.Object"
           glib:type-name="MetaBackgroundImageCache"
           glib:get-type="meta_background_image_cache_get_type"
           glib:type-struct="BackgroundImageCacheClass">
      <doc xml:space="preserve"
           filename="src/compositor/meta-background-image.c"
           line="38">Caches loading of textures for backgrounds.

There's actually nothing background specific about it, other than it is tuned
to work well for large images as typically are used for backgrounds.</doc>
      <source-position filename="src/meta/meta-background-image.h" line="52"/>
      <function name="get_default"
                c:identifier="meta_background_image_cache_get_default">
        <source-position filename="src/meta/meta-background-image.h"
                         line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-background-image.c"
               line="107">the global singleton background cache</doc>
          <type name="BackgroundImageCache"
                c:type="MetaBackgroundImageCache*"/>
        </return-value>
      </function>
      <method name="load" c:identifier="meta_background_image_cache_load">
        <doc xml:space="preserve"
             filename="src/compositor/meta-background-image.c"
             line="309">Loads an image to use as a background, or returns a reference to an
image that is already in the process of loading or loaded.

In either case, what is returned is a [class@Meta.BackgroundImage] which can be dereferenced
to get a [class@Cogl.Texture]. If [method@Meta.BackgroundImage.is_loaded] returns %TRUE,
the background is loaded, otherwise the [signal@Meta.BackgroundImage::loaded]
signal will be emitted exactly once. The 'loaded' state means that the
loading process finished, whether it succeeded or failed.</doc>
        <source-position filename="src/meta/meta-background-image.h"
                         line="61"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/compositor/meta-background-image.c"
               line="323">a #MetaBackgroundImage to dereference to get the loaded texture</doc>
          <type name="BackgroundImage" c:type="MetaBackgroundImage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="cache" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background-image.c"
                 line="311">a #MetaBackgroundImageCache</doc>
            <type name="BackgroundImageCache"
                  c:type="MetaBackgroundImageCache*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background-image.c"
                 line="312">#GFile to load</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="purge" c:identifier="meta_background_image_cache_purge">
        <doc xml:space="preserve"
             filename="src/compositor/meta-background-image.c"
             line="353">Remove an entry from the cache; this would be used if monitoring
showed that the file changed.</doc>
        <source-position filename="src/meta/meta-background-image.h"
                         line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="cache" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background-image.c"
                 line="355">a #MetaBackgroundImageCache</doc>
            <type name="BackgroundImageCache"
                  c:type="MetaBackgroundImageCache*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-background-image.c"
                 line="356">file to remove from the cache</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="BackgroundImageCacheClass"
            c:type="MetaBackgroundImageCacheClass"
            glib:is-gtype-struct-for="BackgroundImageCache">
      <source-position filename="src/meta/meta-background-image.h" line="52"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="BackgroundImageClass"
            c:type="MetaBackgroundImageClass"
            glib:is-gtype-struct-for="BackgroundImage">
      <source-position filename="src/meta/meta-background-image.h" line="34"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Backlight"
           c:symbol-prefix="backlight"
           c:type="MetaBacklight"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="MetaBacklight"
           glib:get-type="meta_backlight_get_type"
           glib:type-struct="BacklightClass">
      <source-position filename="src/meta/meta-backlight.h" line="28"/>
      <method name="get_brightness"
              c:identifier="meta_backlight_get_brightness"
              glib:get-property="brightness">
        <doc xml:space="preserve"
             filename="src/backends/meta-backlight.c"
             line="198">Returns the brightness target of the backlight. The target is a value between
the minimum and maximum brightness of the backlight.</doc>
        <source-position filename="src/meta/meta-backlight.h" line="39"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-backlight.c"
               line="205">The brightness target of the backlight.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="backlight" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-backlight.c"
                 line="200">A #MetaBacklight object</doc>
            <type name="Backlight" c:type="MetaBacklight*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_brightness_info"
              c:identifier="meta_backlight_get_brightness_info">
        <doc xml:space="preserve"
             filename="src/backends/meta-backlight.c"
             line="219">Returns the minimum and maximum supported brightness of the monitor.</doc>
        <source-position filename="src/meta/meta-backlight.h" line="34"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="backlight" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-backlight.c"
                 line="221">A #MetaBacklight object</doc>
            <type name="Backlight" c:type="MetaBacklight*"/>
          </instance-parameter>
          <parameter name="brightness_min_out"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-backlight.c"
                 line="222">minimum brightness</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="brightness_max_out"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-backlight.c"
                 line="223">maximum brightness</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_brightness"
              c:identifier="meta_backlight_set_brightness"
              glib:set-property="brightness">
        <doc xml:space="preserve"
             filename="src/backends/meta-backlight.c"
             line="151">Sets the brightness target of the backlight. The target is a value between
the minimum and maximum brightness of the backlight.</doc>
        <source-position filename="src/meta/meta-backlight.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="backlight" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-backlight.c"
                 line="153">A #MetaBacklight object</doc>
            <type name="Backlight" c:type="MetaBacklight*"/>
          </instance-parameter>
          <parameter name="brightness" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-backlight.c"
                 line="154">The brightness target</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <property name="backend"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Backend"/>
      </property>
      <property name="brightness"
                writable="1"
                transfer-ownership="none"
                setter="set_brightness"
                getter="get_brightness"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="brightness-max"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="brightness-min"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="unknown">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="BacklightClass"
            c:type="MetaBacklightClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Backlight">
      <source-position filename="src/meta/meta-backlight.h" line="28"/>
    </record>
    <class name="Barrier"
           c:symbol-prefix="barrier"
           c:type="MetaBarrier"
           parent="GObject.Object"
           glib:type-name="MetaBarrier"
           glib:get-type="meta_barrier_get_type"
           glib:type-struct="BarrierClass">
      <doc xml:space="preserve"
           filename="src/backends/meta-barrier.c"
           line="3">Pointer barriers</doc>
      <source-position filename="src/meta/barrier.h" line="42"/>
      <implements name="Gio.Initable"/>
      <constructor name="new" c:identifier="meta_barrier_new" throws="1">
        <source-position filename="src/meta/barrier.h" line="47"/>
        <return-value transfer-ownership="full">
          <type name="Barrier" c:type="MetaBarrier*"/>
        </return-value>
        <parameters>
          <parameter name="backend" transfer-ownership="none">
            <type name="Backend" c:type="MetaBackend*"/>
          </parameter>
          <parameter name="x1" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y1" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="x2" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y2" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="directions" transfer-ownership="none">
            <type name="BarrierDirection" c:type="MetaBarrierDirection"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="BarrierFlags" c:type="MetaBarrierFlags"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="destroy" c:identifier="meta_barrier_destroy">
        <source-position filename="src/meta/barrier.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="barrier" transfer-ownership="none">
            <type name="Barrier" c:type="MetaBarrier*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_active" c:identifier="meta_barrier_is_active">
        <source-position filename="src/meta/barrier.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="barrier" transfer-ownership="none">
            <type name="Barrier" c:type="MetaBarrier*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="release" c:identifier="meta_barrier_release">
        <doc xml:space="preserve"
             filename="src/backends/meta-barrier.c"
             line="189">In XI2.3, pointer barriers provide a feature where they can
be temporarily released so that the pointer goes through
them. Pass a #MetaBarrierEvent to release the barrier for
this event sequence.</doc>
        <source-position filename="src/meta/barrier.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="barrier" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-barrier.c"
                 line="191">The barrier to release</doc>
            <type name="Barrier" c:type="MetaBarrier*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-barrier.c"
                 line="192">The event to release the pointer for</doc>
            <type name="BarrierEvent" c:type="MetaBarrierEvent*"/>
          </parameter>
        </parameters>
      </method>
      <property name="backend"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Backend"/>
      </property>
      <property name="directions"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="0">
        <type name="BarrierDirection"/>
      </property>
      <property name="flags"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="META_BARRIER_FLAG_NONE">
        <type name="BarrierFlags"/>
      </property>
      <property name="x1"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="x2"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="32767">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="y1"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="y2"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="32767">
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="hit" when="first">
        <doc xml:space="preserve"
             filename="src/backends/meta-barrier.c"
             line="337">When a pointer barrier is hit, this will trigger. This
requires an XI2-enabled server.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-barrier.c"
                 line="340">A #MetaBarrierEvent that has the details of how
the barrier was hit.</doc>
            <type name="BarrierEvent"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="left" when="first">
        <doc xml:space="preserve"
             filename="src/backends/meta-barrier.c"
             line="355">When a pointer barrier hitbox was left, this will trigger.
This requires an XI2-enabled server.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-barrier.c"
                 line="358">A #MetaBarrierEvent that has the details of how
the barrier was left.</doc>
            <type name="BarrierEvent"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="BarrierClass"
            c:type="MetaBarrierClass"
            glib:is-gtype-struct-for="Barrier">
      <source-position filename="src/meta/barrier.h" line="42"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <bitfield name="BarrierDirection"
              glib:type-name="MetaBarrierDirection"
              glib:get-type="meta_barrier_direction_get_type"
              c:type="MetaBarrierDirection">
      <member name="positive_x"
              value="1"
              c:identifier="META_BARRIER_DIRECTION_POSITIVE_X"
              glib:nick="positive-x"
              glib:name="META_BARRIER_DIRECTION_POSITIVE_X">
        <doc xml:space="preserve"
             filename="src/meta/barrier.h"
             line="13">Positive direction in the X axis</doc>
      </member>
      <member name="positive_y"
              value="2"
              c:identifier="META_BARRIER_DIRECTION_POSITIVE_Y"
              glib:nick="positive-y"
              glib:name="META_BARRIER_DIRECTION_POSITIVE_Y">
        <doc xml:space="preserve"
             filename="src/meta/barrier.h"
             line="14">Positive direction in the Y axis</doc>
      </member>
      <member name="negative_x"
              value="4"
              c:identifier="META_BARRIER_DIRECTION_NEGATIVE_X"
              glib:nick="negative-x"
              glib:name="META_BARRIER_DIRECTION_NEGATIVE_X">
        <doc xml:space="preserve"
             filename="src/meta/barrier.h"
             line="15">Negative direction in the X axis</doc>
      </member>
      <member name="negative_y"
              value="8"
              c:identifier="META_BARRIER_DIRECTION_NEGATIVE_Y"
              glib:nick="negative-y"
              glib:name="META_BARRIER_DIRECTION_NEGATIVE_Y">
        <doc xml:space="preserve"
             filename="src/meta/barrier.h"
             line="16">Negative direction in the Y axis</doc>
      </member>
    </bitfield>
    <record name="BarrierEvent"
            c:type="MetaBarrierEvent"
            glib:type-name="MetaBarrierEvent"
            glib:get-type="meta_barrier_event_get_type"
            c:symbol-prefix="barrier_event">
      <source-position filename="src/meta/barrier.h" line="100"/>
      <field name="ref_count" readable="0" private="1">
        <type name="guint" c:type="volatile guint"/>
      </field>
      <field name="event_id" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/barrier.h"
             line="68">A unique integer ID identifying a
consecutive series of motions at or along the barrier</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="dt" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/barrier.h"
             line="71">Server time, in milliseconds, since the last event
sent for this barrier</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="time" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/barrier.h"
             line="70">Server time, in milliseconds</doc>
        <type name="guint32" c:type="guint32"/>
      </field>
      <field name="x" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/barrier.h"
             line="73">The cursor X position in screen coordinates</doc>
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="y" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/barrier.h"
             line="74">The cursor Y position in screen coordinates.</doc>
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="dx" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/barrier.h"
             line="75">If the cursor hadn't been constrained, the delta
of X movement past the barrier, in screen coordinates</doc>
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="dy" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/barrier.h"
             line="77">If the cursor hadn't been constrained, the delta
of X movement past the barrier, in screen coordinates</doc>
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="released" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/barrier.h"
             line="79">A boolean flag, %TRUE if this event generated
by the pointer leaving the barrier as a result of a client
calling meta_barrier_release() (will be set only for
MetaBarrier::leave signals)</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="grabbed" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/barrier.h"
             line="83">A boolean flag, %TRUE if the pointer was grabbed
at the time this event was sent</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </record>
    <bitfield name="BarrierFlags"
              glib:type-name="MetaBarrierFlags"
              glib:get-type="meta_barrier_flags_get_type"
              c:type="MetaBarrierFlags">
      <member name="none"
              value="1"
              c:identifier="META_BARRIER_FLAG_NONE"
              glib:nick="none"
              glib:name="META_BARRIER_FLAG_NONE">
      </member>
      <member name="sticky"
              value="2"
              c:identifier="META_BARRIER_FLAG_STICKY"
              glib:nick="sticky"
              glib:name="META_BARRIER_FLAG_STICKY">
      </member>
    </bitfield>
    <enumeration name="ButtonFunction"
                 glib:type-name="MetaButtonFunction"
                 glib:get-type="meta_button_function_get_type"
                 c:type="MetaButtonFunction">
      <doc xml:space="preserve"
           filename="src/meta/meta-enums.h"
           line="306">Function a window button can have.

Note, you can't add stuff here without extending the theme format
to draw a new function and breaking all existing themes.</doc>
      <member name="menu"
              value="0"
              c:identifier="META_BUTTON_FUNCTION_MENU"
              glib:nick="menu"
              glib:name="META_BUTTON_FUNCTION_MENU">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="308">Menu</doc>
      </member>
      <member name="minimize"
              value="1"
              c:identifier="META_BUTTON_FUNCTION_MINIMIZE"
              glib:nick="minimize"
              glib:name="META_BUTTON_FUNCTION_MINIMIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="309">Minimize</doc>
      </member>
      <member name="maximize"
              value="2"
              c:identifier="META_BUTTON_FUNCTION_MAXIMIZE"
              glib:nick="maximize"
              glib:name="META_BUTTON_FUNCTION_MAXIMIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="310">Maximize</doc>
      </member>
      <member name="close"
              value="3"
              c:identifier="META_BUTTON_FUNCTION_CLOSE"
              glib:nick="close"
              glib:name="META_BUTTON_FUNCTION_CLOSE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="311">Close</doc>
      </member>
      <member name="last"
              value="4"
              c:identifier="META_BUTTON_FUNCTION_LAST"
              glib:nick="last"
              glib:name="META_BUTTON_FUNCTION_LAST">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="312">Marks the end of the #MetaButtonFunction enumeration</doc>
      </member>
    </enumeration>
    <record name="ButtonLayout" c:type="MetaButtonLayout">
      <source-position filename="src/meta/common.h" line="66"/>
      <field name="left_buttons" writable="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="ButtonFunction" c:type="MetaButtonFunction"/>
        </array>
      </field>
      <field name="left_buttons_has_spacer" writable="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gboolean" c:type="gboolean"/>
        </array>
      </field>
      <field name="right_buttons" writable="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="ButtonFunction" c:type="MetaButtonFunction"/>
        </array>
      </field>
      <field name="right_buttons_has_spacer" writable="1">
        <array zero-terminated="0" fixed-size="4">
          <type name="gboolean" c:type="gboolean"/>
        </array>
      </field>
    </record>
    <constant name="CURRENT_TIME" value="0" c:type="META_CURRENT_TIME">
      <source-position filename="src/meta/common.h" line="44"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <interface name="CloseDialog"
               c:symbol-prefix="close_dialog"
               c:type="MetaCloseDialog"
               glib:type-name="MetaCloseDialog"
               glib:get-type="meta_close_dialog_get_type"
               glib:type-struct="CloseDialogInterface">
      <source-position filename="src/meta/meta-close-dialog.h" line="47"/>
      <virtual-method name="focus" invoker="focus">
        <doc xml:space="preserve"
             filename="src/core/meta-close-dialog.c"
             line="125">Call whenever @dialog should receive keyboard focus,
usually when the window would.</doc>
        <source-position filename="src/meta/meta-close-dialog.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-close-dialog.c"
                 line="127">a #MetaCloseDialog</doc>
            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="hide" invoker="hide">
        <doc xml:space="preserve"
             filename="src/core/meta-close-dialog.c"
             line="77">Hides the close dialog.</doc>
        <source-position filename="src/meta/meta-close-dialog.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-close-dialog.c"
                 line="79">a #MetaCloseDialog</doc>
            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show" invoker="show">
        <doc xml:space="preserve"
             filename="src/core/meta-close-dialog.c"
             line="59">Shows the close dialog.</doc>
        <source-position filename="src/meta/meta-close-dialog.h" line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-close-dialog.c"
                 line="61">a #MetaCloseDialog</doc>
            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="focus" c:identifier="meta_close_dialog_focus">
        <doc xml:space="preserve"
             filename="src/core/meta-close-dialog.c"
             line="125">Call whenever @dialog should receive keyboard focus,
usually when the window would.</doc>
        <source-position filename="src/meta/meta-close-dialog.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-close-dialog.c"
                 line="127">a #MetaCloseDialog</doc>
            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hide" c:identifier="meta_close_dialog_hide">
        <doc xml:space="preserve"
             filename="src/core/meta-close-dialog.c"
             line="77">Hides the close dialog.</doc>
        <source-position filename="src/meta/meta-close-dialog.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-close-dialog.c"
                 line="79">a #MetaCloseDialog</doc>
            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_visible" c:identifier="meta_close_dialog_is_visible">
        <doc xml:space="preserve"
             filename="src/core/meta-close-dialog.c"
             line="111">Returns whether @dialog is currently visible.</doc>
        <source-position filename="src/meta/meta-close-dialog.h" line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/meta-close-dialog.c"
               line="117">#TRUE if @dialog is visible.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-close-dialog.c"
                 line="113">a #MetaCloseDialog</doc>
            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="response" c:identifier="meta_close_dialog_response">
        <doc xml:space="preserve"
             filename="src/core/meta-close-dialog.c"
             line="95">Responds and closes the dialog. To be called by #MetaCloseDialog
implementations.</doc>
        <source-position filename="src/meta/meta-close-dialog.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-close-dialog.c"
                 line="97">a #MetaCloseDialog</doc>
            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
          </instance-parameter>
          <parameter name="response" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-close-dialog.c"
                 line="98">a #MetaCloseDialogResponse</doc>
            <type name="CloseDialogResponse" c:type="MetaCloseDialogResponse"/>
          </parameter>
        </parameters>
      </method>
      <method name="show" c:identifier="meta_close_dialog_show">
        <doc xml:space="preserve"
             filename="src/core/meta-close-dialog.c"
             line="59">Shows the close dialog.</doc>
        <source-position filename="src/meta/meta-close-dialog.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-close-dialog.c"
                 line="61">a #MetaCloseDialog</doc>
            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="window"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Window"/>
      </property>
      <glib:signal name="response" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="CloseDialogResponse"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="CloseDialogInterface"
            c:type="MetaCloseDialogInterface"
            glib:is-gtype-struct-for="CloseDialog">
      <source-position filename="src/meta/meta-close-dialog.h" line="47"/>
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="show">
        <callback name="show">
          <source-position filename="src/meta/meta-close-dialog.h" line="44"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="dialog" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/core/meta-close-dialog.c"
                   line="61">a #MetaCloseDialog</doc>
              <type name="CloseDialog" c:type="MetaCloseDialog*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hide">
        <callback name="hide">
          <source-position filename="src/meta/meta-close-dialog.h" line="45"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="dialog" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/core/meta-close-dialog.c"
                   line="79">a #MetaCloseDialog</doc>
              <type name="CloseDialog" c:type="MetaCloseDialog*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="focus">
        <callback name="focus">
          <source-position filename="src/meta/meta-close-dialog.h" line="46"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="dialog" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/core/meta-close-dialog.c"
                   line="127">a #MetaCloseDialog</doc>
              <type name="CloseDialog" c:type="MetaCloseDialog*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="CloseDialogResponse"
                 glib:type-name="MetaCloseDialogResponse"
                 glib:get-type="meta_close_dialog_response_get_type"
                 c:type="MetaCloseDialogResponse">
      <member name="wait"
              value="0"
              c:identifier="META_CLOSE_DIALOG_RESPONSE_WAIT"
              glib:nick="wait"
              glib:name="META_CLOSE_DIALOG_RESPONSE_WAIT">
      </member>
      <member name="force_close"
              value="1"
              c:identifier="META_CLOSE_DIALOG_RESPONSE_FORCE_CLOSE"
              glib:nick="force-close"
              glib:name="META_CLOSE_DIALOG_RESPONSE_FORCE_CLOSE">
      </member>
    </enumeration>
    <enumeration name="CompEffect"
                 glib:type-name="MetaCompEffect"
                 glib:get-type="meta_comp_effect_get_type"
                 c:type="MetaCompEffect">
      <doc xml:space="preserve"
           filename="src/meta/compositor.h"
           line="34">Indicates the appropriate effect to show the user for
meta_compositor_show_window() and meta_compositor_hide_window()</doc>
      <member name="create"
              value="0"
              c:identifier="META_COMP_EFFECT_CREATE"
              glib:nick="create"
              glib:name="META_COMP_EFFECT_CREATE">
        <doc xml:space="preserve"
             filename="src/meta/compositor.h"
             line="36">The window is newly created
  (also used for a window that was previously on a different
  workspace and is changed to become visible on the active
  workspace.)</doc>
      </member>
      <member name="unminimize"
              value="1"
              c:identifier="META_COMP_EFFECT_UNMINIMIZE"
              glib:nick="unminimize"
              glib:name="META_COMP_EFFECT_UNMINIMIZE">
        <doc xml:space="preserve"
             filename="src/meta/compositor.h"
             line="40">The window should be shown
  as unminimizing from its icon geometry.</doc>
      </member>
      <member name="destroy"
              value="2"
              c:identifier="META_COMP_EFFECT_DESTROY"
              glib:nick="destroy"
              glib:name="META_COMP_EFFECT_DESTROY">
        <doc xml:space="preserve"
             filename="src/meta/compositor.h"
             line="42">The window is being destroyed</doc>
      </member>
      <member name="minimize"
              value="3"
              c:identifier="META_COMP_EFFECT_MINIMIZE"
              glib:nick="minimize"
              glib:name="META_COMP_EFFECT_MINIMIZE">
        <doc xml:space="preserve"
             filename="src/meta/compositor.h"
             line="43">The window should be shown
  as minimizing to its icon geometry.</doc>
      </member>
      <member name="none"
              value="4"
              c:identifier="META_COMP_EFFECT_NONE"
              glib:nick="none"
              glib:name="META_COMP_EFFECT_NONE">
        <doc xml:space="preserve"
             filename="src/meta/compositor.h"
             line="45">No effect, the window should be
  shown or hidden immediately.</doc>
      </member>
    </enumeration>
    <class name="Compositor"
           c:symbol-prefix="compositor"
           c:type="MetaCompositor"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="MetaCompositor"
           glib:get-type="meta_compositor_get_type"
           glib:type-struct="CompositorClass">
      <doc xml:space="preserve"
           filename="src/compositor/compositor.c"
           line="3">Compositor API

At a high-level, a window is not-visible or visible. When a
window is added (with meta_compositor_add_window()) it is not visible.
meta_compositor_show_window() indicates a transition from not-visible to
visible. Some of the reasons for this:

- Window newly created
- Window is unminimized
- Window is moved to the current desktop
- Window was made sticky

meta_compositor_hide_window() indicates that the window has transitioned from
visible to not-visible. Some reasons include:

- Window was destroyed
- Window is minimized
- Window is moved to a different desktop
- Window no longer sticky.

Note that combinations are possible - a window might have first
been minimized and then moved to a different desktop. The 'effect' parameter
to meta_compositor_show_window() and meta_compositor_hide_window() is a hint
as to the appropriate effect to show the user and should not
be considered to be indicative of a state change.

When the active workspace is changed, meta_compositor_switch_workspace() is
called first, then meta_compositor_show_window() and
meta_compositor_hide_window() are called individually for each window
affected, with an effect of META_COMP_EFFECT_NONE.
If hiding windows will affect the switch workspace animation, the
compositor needs to delay hiding the windows until the switch
workspace animation completes.

# Containers #

There's two containers in the stage that are used to place window actors, here
are listed in the order in which they are painted:

- window group, accessible with [method@Meta.Compositor.get_window_group]
- top window group, accessible with [method@Meta.Compositor.get_top_window_group]

Mutter will place actors representing windows in the window group, except for
override-redirect windows (ie. popups and menus) which will be placed in the
top window group.</doc>
      <source-position filename="src/meta/compositor.h" line="31"/>
      <method name="disable_unredirect"
              c:identifier="meta_compositor_disable_unredirect">
        <doc xml:space="preserve"
             filename="src/compositor/compositor.c"
             line="1241">Disables unredirection, can be useful in situations where having
unredirected windows is undesirable like when recording a video.</doc>
        <source-position filename="src/meta/compositor.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/compositor.c"
                 line="1243">a #MetaCompositor</doc>
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="enable_unredirect"
              c:identifier="meta_compositor_enable_unredirect">
        <doc xml:space="preserve"
             filename="src/compositor/compositor.c"
             line="1261">Enables unredirection which reduces the overhead for apps like games.</doc>
        <source-position filename="src/meta/compositor.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/compositor.c"
                 line="1263">a #MetaCompositor</doc>
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_backend"
              c:identifier="meta_compositor_get_backend"
              glib:get-property="backend">
        <source-position filename="src/meta/compositor.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/compositor.c"
               line="1518">The backend corresponding to @compositor</doc>
          <type name="Backend" c:type="MetaBackend*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/compositor.c"
                 line="1516">a #MetaCompositor</doc>
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_feedback_group"
              c:identifier="meta_compositor_get_feedback_group">
        <source-position filename="src/meta/compositor.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/compositor.c"
               line="242">The feedback group corresponding to @display</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/compositor.c"
                 line="240">a #MetaCompositor</doc>
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_laters" c:identifier="meta_compositor_get_laters">
        <source-position filename="src/meta/compositor.h" line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/compositor.c"
               line="1551">a #MetaLaters</doc>
          <type name="Laters" c:type="MetaLaters*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/compositor.c"
                 line="1549">a #MetaCompositor</doc>
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stage" c:identifier="meta_compositor_get_stage">
        <source-position filename="src/meta/compositor.h" line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/compositor.c"
               line="1503">The stage corresponding to @compositor</doc>
          <type name="Clutter.Stage" c:type="ClutterStage*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/compositor.c"
                 line="1501">a #MetaCompositor</doc>
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_top_window_group"
              c:identifier="meta_compositor_get_top_window_group">
        <source-position filename="src/meta/compositor.h" line="88"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/compositor.c"
               line="225">The top window group corresponding to @compositor</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/compositor.c"
                 line="223">a #MetaCompositor</doc>
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_window_actors"
              c:identifier="meta_compositor_get_window_actors">
        <source-position filename="src/meta/compositor.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/compositor.c"
               line="259">The set of #MetaWindowActor on @compositor</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Clutter.Actor"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/compositor.c"
                 line="257">a #MetaCompositor</doc>
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_window_group"
              c:identifier="meta_compositor_get_window_group">
        <source-position filename="src/meta/compositor.h" line="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/compositor.c"
               line="207">The window group corresponding to @compositor</doc>
          <type name="Clutter.Actor" c:type="ClutterActor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/compositor.c"
                 line="205">a #MetaCompositor</doc>
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="backend"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_backend">
        <type name="Backend"/>
      </property>
      <property name="display"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Display"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="CompositorClass"
            c:type="MetaCompositorClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Compositor">
      <source-position filename="src/meta/compositor.h" line="31"/>
    </record>
    <enumeration name="CompositorType"
                 glib:type-name="MetaCompositorType"
                 glib:get-type="meta_compositor_type_get_type"
                 c:type="MetaCompositorType">
      <member name="wayland"
              value="0"
              c:identifier="META_COMPOSITOR_TYPE_WAYLAND"
              glib:nick="wayland"
              glib:name="META_COMPOSITOR_TYPE_WAYLAND">
      </member>
      <member name="x11"
              value="1"
              c:identifier="META_COMPOSITOR_TYPE_X11"
              glib:nick="x11"
              glib:name="META_COMPOSITOR_TYPE_X11">
      </member>
    </enumeration>
    <class name="Context"
           c:symbol-prefix="context"
           c:type="MetaContext"
           parent="GObject.Object"
           glib:type-name="MetaContext"
           glib:get-type="meta_context_get_type"
           glib:type-struct="ContextClass">
      <source-position filename="src/meta/meta-context.h" line="28"/>
      <method name="add_option_entries"
              c:identifier="meta_context_add_option_entries">
        <doc xml:space="preserve"
             filename="src/core/meta-context.c"
             line="116">See g_option_context_add_main_entries() for more details.</doc>
        <source-position filename="src/meta/meta-context.h" line="37"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-context.c"
                 line="118">a #MetaContext</doc>
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
          <parameter name="entries" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-context.c"
                 line="119">a %NULL-terminated array of #GOptionEntrys</doc>
            <array c:type="const GOptionEntry*">
              <type name="GLib.OptionEntry" c:type="GOptionEntry"/>
            </array>
          </parameter>
          <parameter name="translation_domain"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/core/meta-context.c"
                 line="120">a translation domain to use, or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_option_group"
              c:identifier="meta_context_add_option_group">
        <doc xml:space="preserve"
             filename="src/core/meta-context.c"
             line="140">See g_option_context_add_group() for more details.</doc>
        <source-position filename="src/meta/meta-context.h" line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-context.c"
                 line="142">a #MetaContext</doc>
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
          <parameter name="group" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/core/meta-context.c"
                 line="143">the group to add</doc>
            <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
          </parameter>
        </parameters>
      </method>
      <method name="configure"
              c:identifier="meta_context_configure"
              throws="1">
        <source-position filename="src/meta/meta-context.h" line="58"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/meta-context.c"
               line="396">%TRUE if the commandline arguments (if any) were valid and if the
configuration has been successful, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-context.c"
                 line="389">a #MetaContext</doc>
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
          <parameter name="argc"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/core/meta-context.c"
                 line="390">Address of the `argc` parameter of your main() function (or 0
if @argv is %NULL).</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="argv"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/core/meta-context.c"
                 line="392">Address of the`argv` parameter
of main(), or %NULL.</doc>
            <array length="0" zero-terminated="0" c:type="char***">
              <type name="utf8" c:type="char**"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="destroy" c:identifier="meta_context_destroy">
        <source-position filename="src/meta/meta-context.h" line="34"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_backend" c:identifier="meta_context_get_backend">
        <source-position filename="src/meta/meta-context.h" line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/meta-context.c"
               line="256">the #MetaBackend</doc>
          <type name="Backend" c:type="MetaBackend*"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-context.c"
                 line="254">The #MetaContext</doc>
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_compositor_type"
              c:identifier="meta_context_get_compositor_type">
        <source-position filename="src/meta/meta-context.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="CompositorType" c:type="MetaCompositorType"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_debug_control"
              c:identifier="meta_context_get_debug_control">
        <source-position filename="src/meta/meta-context.h" line="106"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/meta-context.c"
               line="994">the #MetaDebugControl</doc>
          <type name="DebugControl" c:type="MetaDebugControl*"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-context.c"
                 line="992">The #MetaContext</doc>
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_display" c:identifier="meta_context_get_display">
        <source-position filename="src/meta/meta-context.h" line="95"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/meta-context.c"
               line="272">the #MetaDisplay</doc>
          <type name="Display" c:type="MetaDisplay*"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-context.c"
                 line="270">The #MetaContext</doc>
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wayland_compositor"
              c:identifier="meta_context_get_wayland_compositor">
        <doc xml:space="preserve"
             filename="src/core/meta-context.c"
             line="285">Get the #MetaWaylandCompositor associated with the MetaContext. The might be
none currently associated if the context hasn't been started or if the
requested compositor type is not %META_COMPOSITOR_TYPE_WAYLAND.</doc>
        <source-position filename="src/meta/meta-wayland-compositor.h"
                         line="35"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/meta-context.c"
               line="293">the #MetaWaylandCompositor</doc>
          <type name="WaylandCompositor" c:type="MetaWaylandCompositor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-context.c"
                 line="287">The #MetaContext</doc>
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_replacing" c:identifier="meta_context_is_replacing">
        <source-position filename="src/meta/meta-context.h" line="89"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="notify_ready" c:identifier="meta_context_notify_ready">
        <source-position filename="src/meta/meta-context.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="raise_rlimit_nofile"
              c:identifier="meta_context_raise_rlimit_nofile"
              throws="1">
        <doc xml:space="preserve"
             filename="src/core/meta-context.c"
             line="669">Raises the RLIMIT_NOFILE limit value to the hard limit.</doc>
        <source-position filename="src/meta/meta-context.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-context.c"
                 line="671">a #MetaContext</doc>
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="restore_rlimit_nofile"
              c:identifier="meta_context_restore_rlimit_nofile"
              throws="1">
        <doc xml:space="preserve"
             filename="src/core/meta-context.c"
             line="711">Restores the RLIMIT_NOFILE limits from when the #MetaContext was created.</doc>
        <source-position filename="src/meta/meta-context.h" line="102"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-context.c"
                 line="713">a #MetaContext</doc>
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="run_main_loop"
              c:identifier="meta_context_run_main_loop"
              throws="1">
        <source-position filename="src/meta/meta-context.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_gnome_wm_keybindings"
              c:identifier="meta_context_set_gnome_wm_keybindings">
        <source-position filename="src/meta/meta-context.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
          <parameter name="wm_keybindings" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_plugin_gtype"
              c:identifier="meta_context_set_plugin_gtype">
        <source-position filename="src/meta/meta-context.h" line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
          <parameter name="plugin_gtype" transfer-ownership="none">
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_plugin_name"
              c:identifier="meta_context_set_plugin_name">
        <source-position filename="src/meta/meta-context.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
          <parameter name="plugin_name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="setup" c:identifier="meta_context_setup" throws="1">
        <source-position filename="src/meta/meta-context.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="start" c:identifier="meta_context_start" throws="1">
        <source-position filename="src/meta/meta-context.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="terminate" c:identifier="meta_context_terminate">
        <source-position filename="src/meta/meta-context.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="terminate_with_error"
              c:identifier="meta_context_terminate_with_error">
        <source-position filename="src/meta/meta-context.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="Context" c:type="MetaContext*"/>
          </instance-parameter>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </method>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="nick"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="unsafe-mode"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="prepare-shutdown" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="started" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ContextClass"
            c:type="MetaContextClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Context">
      <source-position filename="src/meta/meta-context.h" line="28"/>
    </record>
    <enumeration name="Cursor"
                 glib:type-name="MetaCursor"
                 glib:get-type="meta_cursor_get_type"
                 c:type="MetaCursor">
      <member name="invalid"
              value="0"
              c:identifier="META_CURSOR_INVALID"
              glib:nick="invalid"
              glib:name="META_CURSOR_INVALID">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="119">No cursor</doc>
      </member>
      <member name="none"
              value="1"
              c:identifier="META_CURSOR_NONE"
              glib:nick="none"
              glib:name="META_CURSOR_NONE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="120">No cursor</doc>
      </member>
      <member name="default"
              value="2"
              c:identifier="META_CURSOR_DEFAULT"
              glib:nick="default"
              glib:name="META_CURSOR_DEFAULT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="121">Default cursor</doc>
      </member>
      <member name="context_menu"
              value="3"
              c:identifier="META_CURSOR_CONTEXT_MENU"
              glib:nick="context-menu"
              glib:name="META_CURSOR_CONTEXT_MENU">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="122">Context menu cursor</doc>
      </member>
      <member name="help"
              value="4"
              c:identifier="META_CURSOR_HELP"
              glib:nick="help"
              glib:name="META_CURSOR_HELP">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="123">Help cursor</doc>
      </member>
      <member name="pointer"
              value="5"
              c:identifier="META_CURSOR_POINTER"
              glib:nick="pointer"
              glib:name="META_CURSOR_POINTER">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="124">Pointer cursor</doc>
      </member>
      <member name="progress"
              value="6"
              c:identifier="META_CURSOR_PROGRESS"
              glib:nick="progress"
              glib:name="META_CURSOR_PROGRESS">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="125">Progress cursor</doc>
      </member>
      <member name="wait"
              value="7"
              c:identifier="META_CURSOR_WAIT"
              glib:nick="wait"
              glib:name="META_CURSOR_WAIT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="126">Wait cursor</doc>
      </member>
      <member name="cell"
              value="8"
              c:identifier="META_CURSOR_CELL"
              glib:nick="cell"
              glib:name="META_CURSOR_CELL">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="127">Cell cursor</doc>
      </member>
      <member name="crosshair"
              value="9"
              c:identifier="META_CURSOR_CROSSHAIR"
              glib:nick="crosshair"
              glib:name="META_CURSOR_CROSSHAIR">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="128">Crosshair cursor</doc>
      </member>
      <member name="text"
              value="10"
              c:identifier="META_CURSOR_TEXT"
              glib:nick="text"
              glib:name="META_CURSOR_TEXT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="129">Text cursor</doc>
      </member>
      <member name="vertical_text"
              value="11"
              c:identifier="META_CURSOR_VERTICAL_TEXT"
              glib:nick="vertical-text"
              glib:name="META_CURSOR_VERTICAL_TEXT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="130">Vertical text cursor</doc>
      </member>
      <member name="alias"
              value="12"
              c:identifier="META_CURSOR_ALIAS"
              glib:nick="alias"
              glib:name="META_CURSOR_ALIAS">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="131">DnD alias cursor</doc>
      </member>
      <member name="copy"
              value="13"
              c:identifier="META_CURSOR_COPY"
              glib:nick="copy"
              glib:name="META_CURSOR_COPY">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="132">DnD copy cursor</doc>
      </member>
      <member name="move"
              value="14"
              c:identifier="META_CURSOR_MOVE"
              glib:nick="move"
              glib:name="META_CURSOR_MOVE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="133">DnD move cursor</doc>
      </member>
      <member name="no_drop"
              value="15"
              c:identifier="META_CURSOR_NO_DROP"
              glib:nick="no-drop"
              glib:name="META_CURSOR_NO_DROP">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="134">DnD no drop cursor</doc>
      </member>
      <member name="not_allowed"
              value="16"
              c:identifier="META_CURSOR_NOT_ALLOWED"
              glib:nick="not-allowed"
              glib:name="META_CURSOR_NOT_ALLOWED">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="135">DnD not allowed cursor</doc>
      </member>
      <member name="grab"
              value="17"
              c:identifier="META_CURSOR_GRAB"
              glib:nick="grab"
              glib:name="META_CURSOR_GRAB">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="136">DnD grab cursor</doc>
      </member>
      <member name="grabbing"
              value="18"
              c:identifier="META_CURSOR_GRABBING"
              glib:nick="grabbing"
              glib:name="META_CURSOR_GRABBING">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="137">DnD grabbing cursor</doc>
      </member>
      <member name="e_resize"
              value="19"
              c:identifier="META_CURSOR_E_RESIZE"
              glib:nick="e-resize"
              glib:name="META_CURSOR_E_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="138">Resize eastern edge cursor</doc>
      </member>
      <member name="n_resize"
              value="20"
              c:identifier="META_CURSOR_N_RESIZE"
              glib:nick="n-resize"
              glib:name="META_CURSOR_N_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="139">Resize northern edge cursor</doc>
      </member>
      <member name="ne_resize"
              value="21"
              c:identifier="META_CURSOR_NE_RESIZE"
              glib:nick="ne-resize"
              glib:name="META_CURSOR_NE_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="140">Resize north-eastern corner cursor</doc>
      </member>
      <member name="nw_resize"
              value="22"
              c:identifier="META_CURSOR_NW_RESIZE"
              glib:nick="nw-resize"
              glib:name="META_CURSOR_NW_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="141">Resize north-western corner cursor</doc>
      </member>
      <member name="s_resize"
              value="23"
              c:identifier="META_CURSOR_S_RESIZE"
              glib:nick="s-resize"
              glib:name="META_CURSOR_S_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="142">Resize southern edge cursor</doc>
      </member>
      <member name="se_resize"
              value="24"
              c:identifier="META_CURSOR_SE_RESIZE"
              glib:nick="se-resize"
              glib:name="META_CURSOR_SE_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="143">Resize south-eastern corner cursor</doc>
      </member>
      <member name="sw_resize"
              value="25"
              c:identifier="META_CURSOR_SW_RESIZE"
              glib:nick="sw-resize"
              glib:name="META_CURSOR_SW_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="144">Resize south-western corner cursor</doc>
      </member>
      <member name="w_resize"
              value="26"
              c:identifier="META_CURSOR_W_RESIZE"
              glib:nick="w-resize"
              glib:name="META_CURSOR_W_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="145">Resize western edge cursor</doc>
      </member>
      <member name="ew_resize"
              value="27"
              c:identifier="META_CURSOR_EW_RESIZE"
              glib:nick="ew-resize"
              glib:name="META_CURSOR_EW_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="146">Resize eastern and western edges cursor</doc>
      </member>
      <member name="ns_resize"
              value="28"
              c:identifier="META_CURSOR_NS_RESIZE"
              glib:nick="ns-resize"
              glib:name="META_CURSOR_NS_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="147">Resize northern and eastern edges cursor</doc>
      </member>
      <member name="nesw_resize"
              value="29"
              c:identifier="META_CURSOR_NESW_RESIZE"
              glib:nick="nesw-resize"
              glib:name="META_CURSOR_NESW_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="148">Resize north-east and south-west corners cursor</doc>
      </member>
      <member name="nwse_resize"
              value="30"
              c:identifier="META_CURSOR_NWSE_RESIZE"
              glib:nick="nwse-resize"
              glib:name="META_CURSOR_NWSE_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="149">Resize north-west and south-east corners cursor</doc>
      </member>
      <member name="col_resize"
              value="31"
              c:identifier="META_CURSOR_COL_RESIZE"
              glib:nick="col-resize"
              glib:name="META_CURSOR_COL_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="150">Resize column cursor</doc>
      </member>
      <member name="row_resize"
              value="32"
              c:identifier="META_CURSOR_ROW_RESIZE"
              glib:nick="row-resize"
              glib:name="META_CURSOR_ROW_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="151">Resize row cursor</doc>
      </member>
      <member name="all_scroll"
              value="33"
              c:identifier="META_CURSOR_ALL_SCROLL"
              glib:nick="all-scroll"
              glib:name="META_CURSOR_ALL_SCROLL">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="152">Scroll all directions cursor</doc>
      </member>
      <member name="zoom_in"
              value="34"
              c:identifier="META_CURSOR_ZOOM_IN"
              glib:nick="zoom-in"
              glib:name="META_CURSOR_ZOOM_IN">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="153">Zoom in cursor</doc>
      </member>
      <member name="zoom_out"
              value="35"
              c:identifier="META_CURSOR_ZOOM_OUT"
              glib:nick="zoom-out"
              glib:name="META_CURSOR_ZOOM_OUT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="154">Zoom out cursor</doc>
      </member>
      <member name="dnd_ask"
              value="36"
              c:identifier="META_CURSOR_DND_ASK"
              glib:nick="dnd-ask"
              glib:name="META_CURSOR_DND_ASK">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="155">DnD ask cursor</doc>
      </member>
      <member name="all_resize"
              value="37"
              c:identifier="META_CURSOR_ALL_RESIZE"
              glib:nick="all-resize"
              glib:name="META_CURSOR_ALL_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="156">Resize all directions</doc>
      </member>
    </enumeration>
    <class name="CursorTracker"
           c:symbol-prefix="cursor_tracker"
           c:type="MetaCursorTracker"
           parent="GObject.Object"
           glib:type-name="MetaCursorTracker"
           glib:get-type="meta_cursor_tracker_get_type"
           glib:type-struct="CursorTrackerClass">
      <doc xml:space="preserve"
           filename="src/backends/meta-cursor-tracker.c"
           line="22">Mutter cursor tracking helper. Originally only tracking
the cursor image, now more of a "core pointer abstraction"</doc>
      <source-position filename="src/meta/meta-cursor-tracker.h" line="34"/>
      <method name="get_hot" c:identifier="meta_cursor_tracker_get_hot">
        <doc xml:space="preserve"
             filename="src/backends/meta-cursor-tracker.c"
             line="441">Get the hotspot of the current cursor sprite.</doc>
        <source-position filename="src/meta/meta-cursor-tracker.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-cursor-tracker.c"
                 line="443">a #MetaCursorTracker</doc>
            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
          </instance-parameter>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/backends/meta-cursor-tracker.c"
                 line="444">the x coordinate of the cursor hotspot</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/backends/meta-cursor-tracker.c"
                 line="445">the y coordinate of the cursor hotspot</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_pointer"
              c:identifier="meta_cursor_tracker_get_pointer">
        <doc xml:space="preserve"
             filename="src/backends/meta-cursor-tracker.c"
             line="512">Get the current pointer position and state.</doc>
        <source-position filename="src/meta/meta-cursor-tracker.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-cursor-tracker.c"
                 line="514">a #MetaCursorTracker object</doc>
            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
          </instance-parameter>
          <parameter name="coords"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/backends/meta-cursor-tracker.c"
                 line="515">the coordinates of the pointer</doc>
            <type name="Graphene.Point" c:type="graphene_point_t*"/>
          </parameter>
          <parameter name="mods"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/backends/meta-cursor-tracker.c"
                 line="516">the current #ClutterModifierType of the pointer</doc>
            <type name="Clutter.ModifierType" c:type="ClutterModifierType*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_pointer_visible"
              c:identifier="meta_cursor_tracker_get_pointer_visible">
        <source-position filename="src/meta/meta-cursor-tracker.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_scale" c:identifier="meta_cursor_tracker_get_scale">
        <doc xml:space="preserve"
             filename="src/backends/meta-cursor-tracker.c"
             line="420">Get the scale factor of the cursor sprite</doc>
        <source-position filename="src/meta/meta-cursor-tracker.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-cursor-tracker.c"
               line="426">The scale factor of the cursor sprite</doc>
          <type name="gfloat" c:type="float"/>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-cursor-tracker.c"
                 line="422">a #MetaCursorTracker</doc>
            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sprite" c:identifier="meta_cursor_tracker_get_sprite">
        <doc xml:space="preserve"
             filename="src/backends/meta-cursor-tracker.c"
             line="398">Get the #CoglTexture of the cursor sprite</doc>
        <source-position filename="src/meta/meta-cursor-tracker.h" line="45"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/backends/meta-cursor-tracker.c"
               line="404">the #CoglTexture of the cursor sprite</doc>
          <type name="Cogl.Texture" c:type="CoglTexture*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-cursor-tracker.c"
                 line="400">a #MetaCursorTracker</doc>
            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="inhibit_cursor_visibility"
              c:identifier="meta_cursor_tracker_inhibit_cursor_visibility">
        <source-position filename="src/meta/meta-cursor-tracker.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="uninhibit_cursor_visibility"
              c:identifier="meta_cursor_tracker_uninhibit_cursor_visibility">
        <source-position filename="src/meta/meta-cursor-tracker.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="backend"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Backend"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="cursor-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="cursor-prefs-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="position-invalidated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="visibility-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="CursorTrackerClass"
            c:type="MetaCursorTrackerClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="CursorTracker">
      <source-position filename="src/meta/meta-cursor-tracker.h" line="34"/>
    </record>
    <function-macro name="DISPLAY"
                    c:identifier="META_DISPLAY"
                    introspectable="0">
      <source-position filename="src/meta/display.h" line="77"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DISPLAY_CLASS"
                    c:identifier="META_DISPLAY_CLASS"
                    introspectable="0">
      <source-position filename="src/meta/display.h" line="78"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DISPLAY_GET_CLASS"
                    c:identifier="META_DISPLAY_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/meta/display.h" line="81"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="DebugControl"
           c:symbol-prefix="debug_control"
           c:type="MetaDebugControl"
           parent="Gio.DBusInterfaceSkeleton"
           glib:type-name="MetaDebugControl"
           glib:get-type="meta_debug_control_get_type"
           glib:type-struct="DebugControlClass">
      <source-position filename="src/meta/meta-debug-control.h" line="29"/>
      <implements name="Gio.DBusInterface"/>
      <method name="set_exported"
              c:identifier="meta_debug_control_set_exported"
              glib:set-property="exported">
        <source-position filename="src/meta/meta-debug-control.h" line="35"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="debug_control" transfer-ownership="none">
            <type name="DebugControl" c:type="MetaDebugControl*"/>
          </instance-parameter>
          <parameter name="exported" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="context"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Context"/>
      </property>
      <property name="exported"
                writable="1"
                transfer-ownership="none"
                setter="set_exported"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
    </class>
    <record name="DebugControlClass"
            c:type="MetaDebugControlClass"
            glib:is-gtype-struct-for="DebugControl">
      <source-position filename="src/meta/meta-debug-control.h" line="29"/>
      <field name="parent_class" introspectable="0">
        <type c:type="MetaDBusDebugControlSkeletonClass"/>
      </field>
    </record>
    <bitfield name="DebugPaintFlag"
              glib:type-name="MetaDebugPaintFlag"
              glib:get-type="meta_debug_paint_flag_get_type"
              c:type="MetaDebugPaintFlag">
      <member name="none"
              value="0"
              c:identifier="META_DEBUG_PAINT_NONE"
              glib:nick="none"
              glib:name="META_DEBUG_PAINT_NONE">
        <doc xml:space="preserve"
             filename="src/meta/util.h"
             line="48">default</doc>
      </member>
      <member name="opaque_region"
              value="1"
              c:identifier="META_DEBUG_PAINT_OPAQUE_REGION"
              glib:nick="opaque-region"
              glib:name="META_DEBUG_PAINT_OPAQUE_REGION">
        <doc xml:space="preserve"
             filename="src/meta/util.h"
             line="49">paint opaque regions</doc>
      </member>
      <member name="sync_cursor_primary"
              value="2"
              c:identifier="META_DEBUG_PAINT_SYNC_CURSOR_PRIMARY"
              glib:nick="sync-cursor-primary"
              glib:name="META_DEBUG_PAINT_SYNC_CURSOR_PRIMARY">
        <doc xml:space="preserve"
             filename="src/meta/util.h"
             line="50">make cursor updates await compositing
  frames</doc>
      </member>
      <member name="disable_direct_scanout"
              value="4"
              c:identifier="META_DEBUG_PAINT_DISABLE_DIRECT_SCANOUT"
              glib:nick="disable-direct-scanout"
              glib:name="META_DEBUG_PAINT_DISABLE_DIRECT_SCANOUT">
        <doc xml:space="preserve"
             filename="src/meta/util.h"
             line="52">always composite frames</doc>
      </member>
      <member name="ignore_color_state_for_direct_scanout"
              value="8"
              c:identifier="META_DEBUG_PAINT_IGNORE_COLOR_STATE_FOR_DIRECT_SCANOUT"
              glib:nick="ignore-color-state-for-direct-scanout"
              glib:name="META_DEBUG_PAINT_IGNORE_COLOR_STATE_FOR_DIRECT_SCANOUT">
      </member>
    </bitfield>
    <bitfield name="DebugTopic"
              glib:type-name="MetaDebugTopic"
              glib:get-type="meta_debug_topic_get_type"
              c:type="MetaDebugTopic">
      <member name="verbose"
              value="-1"
              c:identifier="META_DEBUG_VERBOSE"
              glib:nick="verbose"
              glib:name="META_DEBUG_VERBOSE">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="25">verbose logging</doc>
      </member>
      <member name="focus"
              value="1"
              c:identifier="META_DEBUG_FOCUS"
              glib:nick="focus"
              glib:name="META_DEBUG_FOCUS">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="26">focus</doc>
      </member>
      <member name="workarea"
              value="2"
              c:identifier="META_DEBUG_WORKAREA"
              glib:nick="workarea"
              glib:name="META_DEBUG_WORKAREA">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="27">workarea</doc>
      </member>
      <member name="stack"
              value="4"
              c:identifier="META_DEBUG_STACK"
              glib:nick="stack"
              glib:name="META_DEBUG_STACK">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="28">stack</doc>
      </member>
      <member name="sm"
              value="8"
              c:identifier="META_DEBUG_SM"
              glib:nick="sm"
              glib:name="META_DEBUG_SM">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="29">session management</doc>
      </member>
      <member name="events"
              value="16"
              c:identifier="META_DEBUG_EVENTS"
              glib:nick="events"
              glib:name="META_DEBUG_EVENTS">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="30">events</doc>
      </member>
      <member name="window_state"
              value="32"
              c:identifier="META_DEBUG_WINDOW_STATE"
              glib:nick="window-state"
              glib:name="META_DEBUG_WINDOW_STATE">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="31">window state</doc>
      </member>
      <member name="window_ops"
              value="64"
              c:identifier="META_DEBUG_WINDOW_OPS"
              glib:nick="window-ops"
              glib:name="META_DEBUG_WINDOW_OPS">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="32">window operations</doc>
      </member>
      <member name="geometry"
              value="128"
              c:identifier="META_DEBUG_GEOMETRY"
              glib:nick="geometry"
              glib:name="META_DEBUG_GEOMETRY">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="33">geometry</doc>
      </member>
      <member name="placement"
              value="256"
              c:identifier="META_DEBUG_PLACEMENT"
              glib:nick="placement"
              glib:name="META_DEBUG_PLACEMENT">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="34">window placement</doc>
      </member>
      <member name="display"
              value="512"
              c:identifier="META_DEBUG_DISPLAY"
              glib:nick="display"
              glib:name="META_DEBUG_DISPLAY">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="35">display</doc>
      </member>
      <member name="keybindings"
              value="1024"
              c:identifier="META_DEBUG_KEYBINDINGS"
              glib:nick="keybindings"
              glib:name="META_DEBUG_KEYBINDINGS">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="36">keybindings</doc>
      </member>
      <member name="sync"
              value="2048"
              c:identifier="META_DEBUG_SYNC"
              glib:nick="sync"
              glib:name="META_DEBUG_SYNC">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="37">sync</doc>
      </member>
      <member name="startup"
              value="4096"
              c:identifier="META_DEBUG_STARTUP"
              glib:nick="startup"
              glib:name="META_DEBUG_STARTUP">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="38">startup</doc>
      </member>
      <member name="prefs"
              value="8192"
              c:identifier="META_DEBUG_PREFS"
              glib:nick="prefs"
              glib:name="META_DEBUG_PREFS">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="39">preferences</doc>
      </member>
      <member name="edge_resistance"
              value="16384"
              c:identifier="META_DEBUG_EDGE_RESISTANCE"
              glib:nick="edge-resistance"
              glib:name="META_DEBUG_EDGE_RESISTANCE">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="40">edge resistance</doc>
      </member>
      <member name="dbus"
              value="32768"
              c:identifier="META_DEBUG_DBUS"
              glib:nick="dbus"
              glib:name="META_DEBUG_DBUS">
      </member>
      <member name="input"
              value="65536"
              c:identifier="META_DEBUG_INPUT"
              glib:nick="input"
              glib:name="META_DEBUG_INPUT">
      </member>
      <member name="wayland"
              value="131072"
              c:identifier="META_DEBUG_WAYLAND"
              glib:nick="wayland"
              glib:name="META_DEBUG_WAYLAND">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="41">Wayland</doc>
      </member>
      <member name="kms"
              value="262144"
              c:identifier="META_DEBUG_KMS"
              glib:nick="kms"
              glib:name="META_DEBUG_KMS">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="42">kernel mode setting</doc>
      </member>
      <member name="screen_cast"
              value="524288"
              c:identifier="META_DEBUG_SCREEN_CAST"
              glib:nick="screen-cast"
              glib:name="META_DEBUG_SCREEN_CAST">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="43">screencasting</doc>
      </member>
      <member name="remote_desktop"
              value="1048576"
              c:identifier="META_DEBUG_REMOTE_DESKTOP"
              glib:nick="remote-desktop"
              glib:name="META_DEBUG_REMOTE_DESKTOP">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="44">remote desktop</doc>
      </member>
      <member name="backend"
              value="2097152"
              c:identifier="META_DEBUG_BACKEND"
              glib:nick="backend"
              glib:name="META_DEBUG_BACKEND">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="45">backend</doc>
      </member>
      <member name="render"
              value="4194304"
              c:identifier="META_DEBUG_RENDER"
              glib:nick="render"
              glib:name="META_DEBUG_RENDER">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="46">native backend rendering</doc>
      </member>
      <member name="color"
              value="8388608"
              c:identifier="META_DEBUG_COLOR"
              glib:nick="color"
              glib:name="META_DEBUG_COLOR">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="47">color management</doc>
      </member>
      <member name="input_events"
              value="16777216"
              c:identifier="META_DEBUG_INPUT_EVENTS"
              glib:nick="input-events"
              glib:name="META_DEBUG_INPUT_EVENTS">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="48">input events</doc>
      </member>
      <member name="eis"
              value="33554432"
              c:identifier="META_DEBUG_EIS"
              glib:nick="eis"
              glib:name="META_DEBUG_EIS">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="49">eis state</doc>
      </member>
      <member name="kms_deadline"
              value="67108864"
              c:identifier="META_DEBUG_KMS_DEADLINE"
              glib:nick="kms-deadline"
              glib:name="META_DEBUG_KMS_DEADLINE">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="50">KMS deadline timers</doc>
      </member>
      <member name="session_management"
              value="134217728"
              c:identifier="META_DEBUG_SESSION_MANAGEMENT"
              glib:nick="session-management"
              glib:name="META_DEBUG_SESSION_MANAGEMENT">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="51">session management</doc>
      </member>
      <member name="x11"
              value="268435456"
              c:identifier="META_DEBUG_X11"
              glib:nick="x11"
              glib:name="META_DEBUG_X11">
        <doc xml:space="preserve"
             filename="src/meta/meta-debug.h"
             line="52">X11 window management</doc>
      </member>
      <member name="workspaces"
              value="536870912"
              c:identifier="META_DEBUG_WORKSPACES"
              glib:nick="workspaces"
              glib:name="META_DEBUG_WORKSPACES">
      </member>
    </bitfield>
    <bitfield name="Direction"
              glib:type-name="MetaDirection"
              glib:get-type="meta_direction_get_type"
              c:type="MetaDirection">
      <member name="left"
              value="1"
              c:identifier="META_DIRECTION_LEFT"
              glib:nick="left"
              glib:name="META_DIRECTION_LEFT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="225">Left</doc>
      </member>
      <member name="right"
              value="2"
              c:identifier="META_DIRECTION_RIGHT"
              glib:nick="right"
              glib:name="META_DIRECTION_RIGHT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="226">Right</doc>
      </member>
      <member name="top"
              value="4"
              c:identifier="META_DIRECTION_TOP"
              glib:nick="top"
              glib:name="META_DIRECTION_TOP">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="227">Top</doc>
      </member>
      <member name="bottom"
              value="8"
              c:identifier="META_DIRECTION_BOTTOM"
              glib:nick="bottom"
              glib:name="META_DIRECTION_BOTTOM">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="228">Bottom</doc>
      </member>
      <member name="up"
              value="4"
              c:identifier="META_DIRECTION_UP"
              glib:nick="up"
              glib:name="META_DIRECTION_UP">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="229">Up</doc>
      </member>
      <member name="down"
              value="8"
              c:identifier="META_DIRECTION_DOWN"
              glib:nick="down"
              glib:name="META_DIRECTION_DOWN">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="230">Down</doc>
      </member>
      <member name="horizontal"
              value="3"
              c:identifier="META_DIRECTION_HORIZONTAL"
              glib:nick="horizontal"
              glib:name="META_DIRECTION_HORIZONTAL">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="231">Horizontal</doc>
      </member>
      <member name="vertical"
              value="12"
              c:identifier="META_DIRECTION_VERTICAL"
              glib:nick="vertical"
              glib:name="META_DIRECTION_VERTICAL">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="232">Vertical</doc>
      </member>
    </bitfield>
    <class name="Display"
           c:symbol-prefix="display"
           c:type="MetaDisplay"
           parent="GObject.Object"
           glib:type-name="MetaDisplay"
           glib:get-type="meta_display_get_type"
           glib:type-struct="DisplayClass">
      <doc xml:space="preserve"
           filename="src/core/display.c"
           line="23">Mutter display representation

The display is represented as a #MetaDisplay struct.</doc>
      <source-position filename="src/meta/display.h" line="74"/>
      <method name="add_keybinding" c:identifier="meta_display_add_keybinding">
        <doc xml:space="preserve"
             filename="src/core/keybindings.c"
             line="1009">Add a keybinding at runtime. The key @name in @schema needs to be of
type %G_VARIANT_TYPE_STRING_ARRAY, with each string describing a
keybinding in the form of "&amp;lt;Control&amp;gt;a" or "&amp;lt;Shift&amp;gt;&amp;lt;Alt&amp;gt;F1". The parser
is fairly liberal and allows lower or upper case, and also abbreviations
such as "&amp;lt;Ctl&amp;gt;" and "&amp;lt;Ctrl&amp;gt;". If the key is set to the empty list or a
list with a single element of either "" or "disabled", the keybinding is
disabled.

Use meta_display_remove_keybinding() to remove the binding.</doc>
        <source-position filename="src/meta/display.h" line="137"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/keybindings.c"
               line="1029">the corresponding keybinding action if the keybinding was
         added successfully, otherwise %META_KEYBINDING_ACTION_NONE</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/keybindings.c"
                 line="1011">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/keybindings.c"
                 line="1012">the binding's name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/keybindings.c"
                 line="1013">the #GSettings object where @name is stored</doc>
            <type name="Gio.Settings" c:type="GSettings*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/keybindings.c"
                 line="1014">flags to specify binding details</doc>
            <type name="KeyBindingFlags" c:type="MetaKeyBindingFlags"/>
          </parameter>
          <parameter name="handler"
                     transfer-ownership="none"
                     scope="notified"
                     closure="4"
                     destroy="5">
            <doc xml:space="preserve"
                 filename="src/core/keybindings.c"
                 line="1015">function to run when the keybinding is invoked</doc>
            <type name="KeyHandlerFunc" c:type="MetaKeyHandlerFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/core/keybindings.c"
                 line="1016">the data to pass to @handler</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="free_data" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="src/core/keybindings.c"
                 line="1017">function to free @user_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_mouse_mode"
              c:identifier="meta_display_clear_mouse_mode">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="2548">Sets the mouse-mode flag to %FALSE, which means that motion events are
no longer ignored in mouse or sloppy focus.
This is an internal function. It should be used only for reimplementing
keybindings, and only in a manner compatible with core code.</doc>
        <source-position filename="src/meta/display.h" line="171"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2550">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="close" c:identifier="meta_display_close">
        <source-position filename="src/meta/display.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="focus_default_window"
              c:identifier="meta_display_focus_default_window">
        <source-position filename="src/meta/display.h" line="250"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_compositor" c:identifier="meta_display_get_compositor">
        <source-position filename="src/meta/display.h" line="94"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="2495">the #MetaCompositor</doc>
          <type name="Compositor" c:type="MetaCompositor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2493">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_compositor_modifiers"
              c:identifier="meta_display_get_compositor_modifiers"
              glib:get-property="compositor-modifiers">
        <source-position filename="src/meta/display.h" line="164"/>
        <return-value transfer-ownership="none">
          <type name="Clutter.ModifierType" c:type="ClutterModifierType"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_context" c:identifier="meta_display_get_context">
        <source-position filename="src/meta/display.h" line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="2481">the #MetaContext</doc>
          <type name="Context" c:type="MetaContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2479">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_monitor"
              c:identifier="meta_display_get_current_monitor">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="3228">Gets the index of the monitor that currently has the mouse pointer.</doc>
        <source-position filename="src/meta/display.h" line="225"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="3234">a monitor index</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="3230">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_time"
              c:identifier="meta_display_get_current_time">
        <source-position filename="src/meta/display.h" line="108"/>
        <return-value transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_time_roundtrip"
              c:identifier="meta_display_get_current_time_roundtrip">
        <source-position filename="src/meta/display.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_focus_window"
              c:identifier="meta_display_get_focus_window"
              glib:get-property="focus-window">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="2532">Get our best guess as to the "currently" focused window (that is,
the window that we expect will be focused at the point when the X
server processes our next request).</doc>
        <source-position filename="src/meta/display.h" line="97"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="2540">The current focus window</doc>
          <type name="Window" c:type="MetaWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2534">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_keybinding_action"
              c:identifier="meta_display_get_keybinding_action">
        <doc xml:space="preserve"
             filename="src/core/keybindings.c"
             line="1115">Get the keybinding action bound to @keycode. Builtin keybindings
have a fixed associated #MetaKeyBindingAction, for bindings added
dynamically the function will return the keybinding action
meta_display_add_keybinding() returns on registration.</doc>
        <source-position filename="src/meta/display.h" line="159"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/keybindings.c"
               line="1126">The action that should be taken for the given key, or
%META_KEYBINDING_ACTION_NONE.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/keybindings.c"
                 line="1117">A #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="keycode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/keybindings.c"
                 line="1118">Raw keycode</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
          <parameter name="mask" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/keybindings.c"
                 line="1119">Event mask</doc>
            <type name="gulong" c:type="unsigned long"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_last_user_time"
              c:identifier="meta_display_get_last_user_time">
        <source-position filename="src/meta/display.h" line="105"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="1395">Timestamp of the last user interaction event with a window</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="1393">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_monitor_geometry"
              c:identifier="meta_display_get_monitor_geometry">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="3297">Stores the location and size of the indicated @monitor in @geometry.</doc>
        <source-position filename="src/meta/display.h" line="228"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="3299">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="3300">the monitor number</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="geometry"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="3301">location to store the monitor geometry</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_monitor_in_fullscreen"
              c:identifier="meta_display_get_monitor_in_fullscreen">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="3360">Determines whether there is a fullscreen window obscuring the specified
monitor. If there is a fullscreen window, the desktop environment will
typically hide any controls that might obscure the fullscreen window.

You can get notification when this changes by connecting to
MetaDisplay::in-fullscreen-changed.</doc>
        <source-position filename="src/meta/display.h" line="237"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="3372">%TRUE if there is a fullscreen window covering the specified monitor.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="3362">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="3363">the monitor number</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_monitor_index_for_rect"
              c:identifier="meta_display_get_monitor_index_for_rect">
        <source-position filename="src/meta/display.h" line="241"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="rect" transfer-ownership="none">
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_monitor_neighbor_index"
              c:identifier="meta_display_get_monitor_neighbor_index">
        <source-position filename="src/meta/display.h" line="245"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="which_monitor" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="dir" transfer-ownership="none">
            <type name="DisplayDirection" c:type="MetaDisplayDirection"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_monitor_scale"
              c:identifier="meta_display_get_monitor_scale">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="3329">Gets the monitor scaling value for the given @monitor.</doc>
        <source-position filename="src/meta/display.h" line="233"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="3336">the monitor scaling value</doc>
          <type name="gfloat" c:type="float"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="3331">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="3332">the monitor number</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_n_monitors" c:identifier="meta_display_get_n_monitors">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="3251">Gets the number of monitors that are joined together to form @display.</doc>
        <source-position filename="src/meta/display.h" line="219"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="3257">the number of monitors</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="3253">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pad_button_label"
              c:identifier="meta_display_get_pad_button_label">
        <source-position filename="src/meta/display.h" line="183"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="pad" transfer-ownership="none">
            <type name="Clutter.InputDevice" c:type="ClutterInputDevice*"/>
          </parameter>
          <parameter name="button_number" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_pad_feature_label"
              c:identifier="meta_display_get_pad_feature_label">
        <source-position filename="src/meta/display.h" line="188"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="pad" transfer-ownership="none">
            <type name="Clutter.InputDevice" c:type="ClutterInputDevice*"/>
          </parameter>
          <parameter name="feature" transfer-ownership="none">
            <type name="PadFeatureType" c:type="MetaPadFeatureType"/>
          </parameter>
          <parameter name="direction" transfer-ownership="none">
            <type name="PadDirection" c:type="MetaPadDirection"/>
          </parameter>
          <parameter name="feature_number" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_primary_monitor"
              c:identifier="meta_display_get_primary_monitor">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="3271">Gets the index of the primary monitor on this @display.</doc>
        <source-position filename="src/meta/display.h" line="222"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="3277">a monitor index</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="3273">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selection" c:identifier="meta_display_get_selection">
        <source-position filename="src/meta/display.h" line="281"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="3476">The selection manager of the display</doc>
          <type name="Selection" c:type="MetaSelection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="3474">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="meta_display_get_size">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="2503">Retrieve the size of the display.</doc>
        <source-position filename="src/meta/display.h" line="195"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2505">A #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2506">The width of the screen</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2507">The height of the screen</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_sound_player"
              c:identifier="meta_display_get_sound_player">
        <source-position filename="src/meta/display.h" line="278"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="3464">The sound player of the display</doc>
          <type name="SoundPlayer" c:type="MetaSoundPlayer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="3462">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_startup_notification"
              c:identifier="meta_display_get_startup_notification"
              introspectable="0">
        <source-position filename="src/meta/display.h" line="275"/>
        <return-value>
          <type name="StartupNotification" c:type="MetaStartupNotification*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tab_current"
              c:identifier="meta_display_get_tab_current">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="2195">Determine the active window that should be displayed for Alt-TAB.</doc>
        <source-position filename="src/meta/display.h" line="129"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="2203">Current window</doc>
          <type name="Window" c:type="MetaWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2197">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2198">type of tab list</doc>
            <type name="TabList" c:type="MetaTabList"/>
          </parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2199">origin workspace</doc>
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tab_list" c:identifier="meta_display_get_tab_list">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="2062">Determine the list of windows that should be displayed for Alt-TAB
functionality.  The windows are returned in most recently used order.
If @workspace is not %NULL, the list only contains windows that are on
@workspace or have the demands-attention hint set; otherwise it contains
all windows.</doc>
        <source-position filename="src/meta/display.h" line="117"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="2074">List of windows</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Window"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2064">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2065">type of tab list</doc>
            <type name="TabList" c:type="MetaTabList"/>
          </parameter>
          <parameter name="workspace"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2066">origin workspace</doc>
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_tab_next" c:identifier="meta_display_get_tab_next">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="2143">Determine the next window that should be displayed for Alt-TAB
functionality.</doc>
        <source-position filename="src/meta/display.h" line="122"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="2154">Next window</doc>
          <type name="Window" c:type="MetaWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2145">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2146">type of tab list</doc>
            <type name="TabList" c:type="MetaTabList"/>
          </parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2147">origin workspace</doc>
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </parameter>
          <parameter name="window"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2148">starting window</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
          <parameter name="backward" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2149">If %TRUE, look for the previous window.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_workspace_manager"
              c:identifier="meta_display_get_workspace_manager">
        <source-position filename="src/meta/display.h" line="269"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="3414">The workspace manager of the display</doc>
          <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="3412">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_x11_display"
              c:identifier="meta_display_get_x11_display"
              introspectable="0">
        <source-position filename="src/meta/meta-x11-display.h" line="70"/>
        <return-value>
          <type name="X11Display" c:type="MetaX11Display*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/x11/meta-x11-display.c"
                 line="2814">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="grab_accelerator"
              c:identifier="meta_display_grab_accelerator">
        <source-position filename="src/meta/display.h" line="150"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="accelerator" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="flags" transfer-ownership="none">
            <type name="KeyBindingFlags" c:type="MetaKeyBindingFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_grabbed" c:identifier="meta_display_is_grabbed">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="1715">Returns %TRUE if there is an ongoing grab operation.</doc>
        <source-position filename="src/meta/display.h" line="134"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="1721">Whether there is an active display grab operation.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="1717">The #MetaDisplay that the window is on</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_pointer_emulating_sequence"
              c:identifier="meta_display_is_pointer_emulating_sequence">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="2610">Tells whether the event sequence is the used for pointer emulation
and single-touch interaction.</doc>
        <source-position filename="src/meta/display.h" line="174"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="2618">#TRUE if the sequence emulates pointer behavior</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2612">the display</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="sequence"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2613">a #ClutterEventSequence</doc>
            <type name="Clutter.EventSequence" c:type="ClutterEventSequence*"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_all_windows"
              c:identifier="meta_display_list_all_windows">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="2037">List all windows, including override-redirect ones. The windows are
in no particular order.</doc>
        <source-position filename="src/meta/display.h" line="114"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="2044">List of windows</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Window"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2039">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_keybinding"
              c:identifier="meta_display_remove_keybinding">
        <doc xml:space="preserve"
             filename="src/core/keybindings.c"
             line="1050">Remove keybinding @name; the function will fail if @name is not a known
keybinding or has not been added with meta_display_add_keybinding().</doc>
        <source-position filename="src/meta/display.h" line="146"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/keybindings.c"
               line="1058">%TRUE if the binding has been removed successfully,
         otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/keybindings.c"
                 line="1052">the #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/keybindings.c"
                 line="1053">name of the keybinding to remove</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="request_pad_osd"
              c:identifier="meta_display_request_pad_osd">
        <source-position filename="src/meta/display.h" line="178"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="pad" transfer-ownership="none">
            <type name="Clutter.InputDevice" c:type="ClutterInputDevice*"/>
          </parameter>
          <parameter name="edition_mode" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cursor" c:identifier="meta_display_set_cursor">
        <source-position filename="src/meta/display.h" line="200"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="cursor" transfer-ownership="none">
            <type name="Cursor" c:type="MetaCursor"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_input_focus"
              c:identifier="meta_display_set_input_focus">
        <source-position filename="src/meta/display.h" line="284"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="sort_windows_by_stacking"
              c:identifier="meta_display_sort_windows_by_stacking">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="2334">Sorts a set of windows according to their current stacking order. If windows
from multiple screens are present in the set of input windows, then all the
windows on screen 0 are sorted below all the windows on screen 1, and so forth.
Since the stacking order of override-redirect windows isn't controlled by
Metacity, if override-redirect windows are in the input, the result may not
correspond to the actual stacking order in the X server.

An example of using this would be to sort the list of transient dialogs for a
window into their current stacking order.</doc>
        <source-position filename="src/meta/display.h" line="167"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="2349">Input windows sorted by stacking order, from lowest to highest</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Window"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2336">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="windows" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="2337">Set of windows</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="Window"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="ungrab_accelerator"
              c:identifier="meta_display_ungrab_accelerator">
        <source-position filename="src/meta/display.h" line="155"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="action_id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="unset_input_focus"
              c:identifier="meta_display_unset_input_focus">
        <source-position filename="src/meta/display.h" line="288"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="xserver_time_is_before"
              c:identifier="meta_display_xserver_time_is_before">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="1366">Xserver time can wraparound, thus comparing two timestamps needs to take
this into account. If no wraparound has occurred, this is equivalent to
  time1 &lt; time2
Otherwise, we need to account for the fact that wraparound can occur
and the fact that a timestamp of 0 must be special-cased since it
means "older than anything else".

Note that this is NOT an equivalent for time1 &lt;= time2; if that's what
you need then you'll need to swap the order of the arguments and negate
the result.</doc>
        <source-position filename="src/meta/display.h" line="100"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="1368">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="time1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="1369">An event timestamp</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="time2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="1370">An event timestamp</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <property name="compositor-modifiers"
                transfer-ownership="none"
                getter="get_compositor_modifiers"
                default-value="0">
        <type name="Clutter.ModifierType"/>
      </property>
      <property name="focus-window"
                transfer-ownership="none"
                getter="get_focus_window">
        <type name="Window"/>
      </property>
      <glib:signal name="accelerator-activated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Clutter.InputDevice"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="accelerator-deactivated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Clutter.InputDevice"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="closing" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="cursor-updated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="focus-window" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Window"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="gl-video-memory-purged" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="grab-op-begin" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Window"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="GrabOp"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="grab-op-end" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Window"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="GrabOp"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="in-fullscreen-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="init-xserver" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Gio.Task"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="modifiers-accelerator-activated" when="last">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="345">The ::modifiers-accelerator-activated signal will be emitted when
a special modifiers-only keybinding is activated.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="352">%TRUE means that the keyboard device should remain
   frozen and %FALSE for the default behavior of unfreezing the
   keyboard.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </glib:signal>
      <glib:signal name="overlay-key" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="pad-mode-switch" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Clutter.InputDevice"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="restacked" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="restart" when="last">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="448">The signal is emitted to indicate that compositor
should reexec the process.

This is emitted when [func@Meta.restart] is called,
either by Mutter internally or by the embedding compositor.

See also [signal@Meta.Display::show-restart-message].</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="460">%FALSE to indicate that the compositor could not
 be restarted. When the compositor is restarted, the signal
 should not return.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </glib:signal>
      <glib:signal name="show-osd" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="show-pad-osd" when="last">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="491">Requests the pad button mapping OSD to be shown.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="502">The OSD actor</doc>
          <type name="Clutter.Actor"/>
        </return-value>
        <parameters>
          <parameter name="pad" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="494">the pad device</doc>
            <type name="Clutter.InputDevice"/>
          </parameter>
          <parameter name="settings" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="495">the pad device settings</doc>
            <type name="Gio.Settings"/>
          </parameter>
          <parameter name="layout_path" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="496">path to the layout image</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="edition_mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="497">Whether the OSD should be shown in edition mode</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="monitor_idx" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="498">Monitor to show the OSD on</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="show-resize-popup" when="last">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Mtk.Rectangle"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p2" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="show-restart-message" when="last">
        <doc xml:space="preserve"
             filename="src/core/display.c"
             line="417">The signal will be emitted to indicate that the compositor
should show a message during restart.

This is emitted when [func@Meta.restart] is called, either by Mutter
internally or by the embedding compositor. The message should be
immediately added to the Clutter stage in its final form -
[signal@Meta.Display::restart] will be emitted to exit the application and leave the
stage contents frozen as soon as the the stage is painted again.

On case of failure to restart, this signal will be emitted again
with %NULL for @message.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/display.c"
               line="435">%TRUE means the message was added to the stage; %FALSE
  indicates that the compositor did not show the message.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="message"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/core/display.c"
                 line="420">The message to display, or %NULL
 to clear a previous restart message.</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="showing-desktop-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="window-created" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-demands-attention" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-entered-monitor" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-left-monitor" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-marked-urgent" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-visibility-updated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="p0"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="p1"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="workareas-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="x11-display-closing" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="x11-display-opened" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="x11-display-setup" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="DisplayClass"
            c:type="MetaDisplayClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Display">
      <source-position filename="src/meta/display.h" line="74"/>
    </record>
    <enumeration name="DisplayCorner"
                 glib:type-name="MetaDisplayCorner"
                 glib:get-type="meta_display_corner_get_type"
                 c:type="MetaDisplayCorner">
      <member name="topleft"
              value="0"
              c:identifier="META_DISPLAY_TOPLEFT"
              glib:nick="topleft"
              glib:name="META_DISPLAY_TOPLEFT">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="255">top-left corner</doc>
      </member>
      <member name="topright"
              value="1"
              c:identifier="META_DISPLAY_TOPRIGHT"
              glib:nick="topright"
              glib:name="META_DISPLAY_TOPRIGHT">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="256">top-right corner</doc>
      </member>
      <member name="bottomleft"
              value="2"
              c:identifier="META_DISPLAY_BOTTOMLEFT"
              glib:nick="bottomleft"
              glib:name="META_DISPLAY_BOTTOMLEFT">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="257">bottom-left corner</doc>
      </member>
      <member name="bottomright"
              value="3"
              c:identifier="META_DISPLAY_BOTTOMRIGHT"
              glib:nick="bottomright"
              glib:name="META_DISPLAY_BOTTOMRIGHT">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="258">bottom-right corner</doc>
      </member>
    </enumeration>
    <enumeration name="DisplayDirection"
                 glib:type-name="MetaDisplayDirection"
                 glib:get-type="meta_display_direction_get_type"
                 c:type="MetaDisplayDirection">
      <member name="up"
              value="0"
              c:identifier="META_DISPLAY_UP"
              glib:nick="up"
              glib:name="META_DISPLAY_UP">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="205">up</doc>
      </member>
      <member name="down"
              value="1"
              c:identifier="META_DISPLAY_DOWN"
              glib:nick="down"
              glib:name="META_DISPLAY_DOWN">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="206">down</doc>
      </member>
      <member name="left"
              value="2"
              c:identifier="META_DISPLAY_LEFT"
              glib:nick="left"
              glib:name="META_DISPLAY_LEFT">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="207">left</doc>
      </member>
      <member name="right"
              value="3"
              c:identifier="META_DISPLAY_RIGHT"
              glib:nick="right"
              glib:name="META_DISPLAY_RIGHT">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="208">right</doc>
      </member>
    </enumeration>
    <class name="Dnd"
           c:symbol-prefix="dnd"
           c:type="MetaDnd"
           parent="GObject.Object"
           glib:type-name="MetaDnd"
           glib:get-type="meta_dnd_get_type"
           glib:type-struct="DndClass">
      <source-position filename="src/meta/meta-dnd.h" line="31"/>
      <glib:signal name="dnd-enter" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="dnd-leave" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="dnd-position-change" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="DndClass"
            c:type="MetaDndClass"
            glib:is-gtype-struct-for="Dnd">
      <source-position filename="src/meta/meta-dnd.h" line="31"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="Edge" c:type="MetaEdge">
      <source-position filename="src/meta/boxes.h" line="65"/>
      <field name="rect" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/boxes.h"
             line="55">#MtkRectangle with the bounds of the edge</doc>
        <type name="Mtk.Rectangle" c:type="MtkRectangle"/>
      </field>
      <field name="side_type" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/boxes.h"
             line="56">Side</doc>
        <type name="Side" c:type="MetaSide"/>
      </field>
      <field name="edge_type" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/boxes.h"
             line="57">To what belongs the edge</doc>
        <type name="EdgeType" c:type="MetaEdgeType"/>
      </field>
    </record>
    <enumeration name="EdgeType"
                 glib:type-name="MetaEdgeType"
                 glib:get-type="meta_edge_type_get_type"
                 c:type="MetaEdgeType">
      <member name="window"
              value="0"
              c:identifier="META_EDGE_WINDOW"
              glib:nick="window"
              glib:name="META_EDGE_WINDOW">
        <doc xml:space="preserve"
             filename="src/meta/boxes.h"
             line="42">Whether the edge belongs to a window</doc>
      </member>
      <member name="monitor"
              value="1"
              c:identifier="META_EDGE_MONITOR"
              glib:nick="monitor"
              glib:name="META_EDGE_MONITOR">
        <doc xml:space="preserve"
             filename="src/meta/boxes.h"
             line="43">Whether the edge belongs to a monitor</doc>
      </member>
      <member name="screen"
              value="2"
              c:identifier="META_EDGE_SCREEN"
              glib:nick="screen"
              glib:name="META_EDGE_SCREEN">
        <doc xml:space="preserve"
             filename="src/meta/boxes.h"
             line="44">Whether the edge belongs to a screen</doc>
      </member>
    </enumeration>
    <enumeration name="ExitCode"
                 glib:type-name="MetaExitCode"
                 glib:get-type="meta_exit_code_get_type"
                 c:type="MetaExitCode">
      <member name="success"
              value="0"
              c:identifier="META_EXIT_SUCCESS"
              glib:nick="success"
              glib:name="META_EXIT_SUCCESS">
        <doc xml:space="preserve"
             filename="src/meta/main.h"
             line="38">Success</doc>
      </member>
      <member name="error"
              value="1"
              c:identifier="META_EXIT_ERROR"
              glib:nick="error"
              glib:name="META_EXIT_ERROR">
        <doc xml:space="preserve"
             filename="src/meta/main.h"
             line="39">Error</doc>
      </member>
    </enumeration>
    <record name="FrameBorder" c:type="MetaFrameBorder">
      <source-position filename="src/meta/common.h" line="81"/>
      <field name="left" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/common.h"
             line="70">left border</doc>
        <type name="gint16" c:type="int16_t"/>
      </field>
      <field name="right" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/common.h"
             line="71">right border</doc>
        <type name="gint16" c:type="int16_t"/>
      </field>
      <field name="top" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/common.h"
             line="72">top border</doc>
        <type name="gint16" c:type="int16_t"/>
      </field>
      <field name="bottom" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/common.h"
             line="73">bottom border</doc>
        <type name="gint16" c:type="int16_t"/>
      </field>
    </record>
    <record name="FrameBorders" c:type="MetaFrameBorders">
      <source-position filename="src/meta/common.h" line="101"/>
      <field name="visible" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/common.h"
             line="85">inner visible portion of frame border</doc>
        <type name="FrameBorder" c:type="MetaFrameBorder"/>
      </field>
      <field name="invisible" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/common.h"
             line="86">outer invisible portion of frame border</doc>
        <type name="FrameBorder" c:type="MetaFrameBorder"/>
      </field>
      <field name="total" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/common.h"
             line="87">sum of the two borders above</doc>
        <type name="FrameBorder" c:type="MetaFrameBorder"/>
      </field>
      <method name="clear" c:identifier="meta_frame_borders_clear">
        <source-position filename="src/meta/common.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FrameBorders" c:type="MetaFrameBorders*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="FrameType"
                 glib:type-name="MetaFrameType"
                 glib:get-type="meta_frame_type_get_type"
                 c:type="MetaFrameType">
      <member name="normal"
              value="0"
              c:identifier="META_FRAME_TYPE_NORMAL"
              glib:nick="normal"
              glib:name="META_FRAME_TYPE_NORMAL">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="202">Normal frame</doc>
      </member>
      <member name="dialog"
              value="1"
              c:identifier="META_FRAME_TYPE_DIALOG"
              glib:nick="dialog"
              glib:name="META_FRAME_TYPE_DIALOG">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="203">Dialog frame</doc>
      </member>
      <member name="modal_dialog"
              value="2"
              c:identifier="META_FRAME_TYPE_MODAL_DIALOG"
              glib:nick="modal-dialog"
              glib:name="META_FRAME_TYPE_MODAL_DIALOG">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="204">Modal dialog frame</doc>
      </member>
      <member name="utility"
              value="3"
              c:identifier="META_FRAME_TYPE_UTILITY"
              glib:nick="utility"
              glib:name="META_FRAME_TYPE_UTILITY">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="205">Utility frame</doc>
      </member>
      <member name="menu"
              value="4"
              c:identifier="META_FRAME_TYPE_MENU"
              glib:nick="menu"
              glib:name="META_FRAME_TYPE_MENU">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="206">Menu frame</doc>
      </member>
      <member name="border"
              value="5"
              c:identifier="META_FRAME_TYPE_BORDER"
              glib:nick="border"
              glib:name="META_FRAME_TYPE_BORDER">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="207">Border frame</doc>
      </member>
      <member name="attached"
              value="6"
              c:identifier="META_FRAME_TYPE_ATTACHED"
              glib:nick="attached"
              glib:name="META_FRAME_TYPE_ATTACHED">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="208">Attached frame</doc>
      </member>
      <member name="last"
              value="7"
              c:identifier="META_FRAME_TYPE_LAST"
              glib:nick="last"
              glib:name="META_FRAME_TYPE_LAST">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="209">Marks the end of the #MetaFrameType enumeration</doc>
      </member>
      <function name="to_string" c:identifier="meta_frame_type_to_string">
        <doc xml:space="preserve"
             filename="src/x11/meta-x11-frame.c"
             line="599">Converts a frame type enum value to the name string that would
appear in the theme definition file.</doc>
        <source-position filename="src/meta/util.h" line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/x11/meta-x11-frame.c"
               line="606">the string value</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/x11/meta-x11-frame.c"
                 line="601">a #MetaFrameType</doc>
            <type name="FrameType" c:type="MetaFrameType"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <enumeration name="GrabOp"
                 glib:type-name="MetaGrabOp"
                 glib:get-type="meta_grab_op_get_type"
                 c:type="MetaGrabOp">
      <member name="none"
              value="0"
              c:identifier="META_GRAB_OP_NONE"
              glib:nick="none"
              glib:name="META_GRAB_OP_NONE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="29">None</doc>
      </member>
      <member name="window_base"
              value="1"
              c:identifier="META_GRAB_OP_WINDOW_BASE"
              glib:nick="window-base"
              glib:name="META_GRAB_OP_WINDOW_BASE">
      </member>
      <member name="moving"
              value="1"
              c:identifier="META_GRAB_OP_MOVING"
              glib:nick="moving"
              glib:name="META_GRAB_OP_MOVING">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="30">Moving with pointer</doc>
      </member>
      <member name="moving_unconstrained"
              value="1025"
              c:identifier="META_GRAB_OP_MOVING_UNCONSTRAINED"
              glib:nick="moving-unconstrained"
              glib:name="META_GRAB_OP_MOVING_UNCONSTRAINED">
      </member>
      <member name="resizing_nw"
              value="36865"
              c:identifier="META_GRAB_OP_RESIZING_NW"
              glib:nick="resizing-nw"
              glib:name="META_GRAB_OP_RESIZING_NW">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="36">Resizing NW with pointer</doc>
      </member>
      <member name="resizing_n"
              value="32769"
              c:identifier="META_GRAB_OP_RESIZING_N"
              glib:nick="resizing-n"
              glib:name="META_GRAB_OP_RESIZING_N">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="34">Resizing N with pointer</doc>
      </member>
      <member name="resizing_ne"
              value="40961"
              c:identifier="META_GRAB_OP_RESIZING_NE"
              glib:nick="resizing-ne"
              glib:name="META_GRAB_OP_RESIZING_NE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="35">Resizing NE with pointer</doc>
      </member>
      <member name="resizing_e"
              value="8193"
              c:identifier="META_GRAB_OP_RESIZING_E"
              glib:nick="resizing-e"
              glib:name="META_GRAB_OP_RESIZING_E">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="38">Resizing E with pointer</doc>
      </member>
      <member name="resizing_sw"
              value="20481"
              c:identifier="META_GRAB_OP_RESIZING_SW"
              glib:nick="resizing-sw"
              glib:name="META_GRAB_OP_RESIZING_SW">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="33">Resizing SW with pointer</doc>
      </member>
      <member name="resizing_s"
              value="16385"
              c:identifier="META_GRAB_OP_RESIZING_S"
              glib:nick="resizing-s"
              glib:name="META_GRAB_OP_RESIZING_S">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="32">Resizing S with pointer</doc>
      </member>
      <member name="resizing_se"
              value="24577"
              c:identifier="META_GRAB_OP_RESIZING_SE"
              glib:nick="resizing-se"
              glib:name="META_GRAB_OP_RESIZING_SE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="31">Resizing SE with pointer</doc>
      </member>
      <member name="resizing_w"
              value="4097"
              c:identifier="META_GRAB_OP_RESIZING_W"
              glib:nick="resizing-w"
              glib:name="META_GRAB_OP_RESIZING_W">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="37">Resizing W with pointer</doc>
      </member>
      <member name="keyboard_moving"
              value="257"
              c:identifier="META_GRAB_OP_KEYBOARD_MOVING"
              glib:nick="keyboard-moving"
              glib:name="META_GRAB_OP_KEYBOARD_MOVING">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="39">Moving with keyboard</doc>
      </member>
      <member name="keyboard_resizing_unknown"
              value="769"
              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN"
              glib:nick="keyboard-resizing-unknown"
              glib:name="META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="40">Resizing with keyboard</doc>
      </member>
      <member name="keyboard_resizing_nw"
              value="37121"
              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_NW"
              glib:nick="keyboard-resizing-nw"
              glib:name="META_GRAB_OP_KEYBOARD_RESIZING_NW">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="48">Resizing NS with keyboard</doc>
      </member>
      <member name="keyboard_resizing_n"
              value="33025"
              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_N"
              glib:nick="keyboard-resizing-n"
              glib:name="META_GRAB_OP_KEYBOARD_RESIZING_N">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="42">Resizing N with keyboard</doc>
      </member>
      <member name="keyboard_resizing_ne"
              value="41217"
              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_NE"
              glib:nick="keyboard-resizing-ne"
              glib:name="META_GRAB_OP_KEYBOARD_RESIZING_NE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="46">Resizing NE with keyboard</doc>
      </member>
      <member name="keyboard_resizing_e"
              value="8449"
              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_E"
              glib:nick="keyboard-resizing-e"
              glib:name="META_GRAB_OP_KEYBOARD_RESIZING_E">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="44">Resizing E with keyboard</doc>
      </member>
      <member name="keyboard_resizing_sw"
              value="20737"
              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_SW"
              glib:nick="keyboard-resizing-sw"
              glib:name="META_GRAB_OP_KEYBOARD_RESIZING_SW">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="47">Resizing SW with keyboard</doc>
      </member>
      <member name="keyboard_resizing_s"
              value="16641"
              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_S"
              glib:nick="keyboard-resizing-s"
              glib:name="META_GRAB_OP_KEYBOARD_RESIZING_S">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="41">Resizing S with keyboard</doc>
      </member>
      <member name="keyboard_resizing_se"
              value="24833"
              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_SE"
              glib:nick="keyboard-resizing-se"
              glib:name="META_GRAB_OP_KEYBOARD_RESIZING_SE">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="45">Resizing SE with keyboard</doc>
      </member>
      <member name="keyboard_resizing_w"
              value="4353"
              c:identifier="META_GRAB_OP_KEYBOARD_RESIZING_W"
              glib:nick="keyboard-resizing-w"
              glib:name="META_GRAB_OP_KEYBOARD_RESIZING_W">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="43">Resizing W with keyboard</doc>
      </member>
    </enumeration>
    <enumeration name="Gravity"
                 glib:type-name="MetaGravity"
                 glib:get-type="meta_gravity_get_type"
                 c:type="MetaGravity">
      <member name="none"
              value="0"
              c:identifier="META_GRAVITY_NONE"
              glib:nick="none"
              glib:name="META_GRAVITY_NONE">
      </member>
      <member name="north_west"
              value="1"
              c:identifier="META_GRAVITY_NORTH_WEST"
              glib:nick="north-west"
              glib:name="META_GRAVITY_NORTH_WEST">
      </member>
      <member name="north"
              value="2"
              c:identifier="META_GRAVITY_NORTH"
              glib:nick="north"
              glib:name="META_GRAVITY_NORTH">
      </member>
      <member name="north_east"
              value="3"
              c:identifier="META_GRAVITY_NORTH_EAST"
              glib:nick="north-east"
              glib:name="META_GRAVITY_NORTH_EAST">
      </member>
      <member name="west"
              value="4"
              c:identifier="META_GRAVITY_WEST"
              glib:nick="west"
              glib:name="META_GRAVITY_WEST">
      </member>
      <member name="center"
              value="5"
              c:identifier="META_GRAVITY_CENTER"
              glib:nick="center"
              glib:name="META_GRAVITY_CENTER">
      </member>
      <member name="east"
              value="6"
              c:identifier="META_GRAVITY_EAST"
              glib:nick="east"
              glib:name="META_GRAVITY_EAST">
      </member>
      <member name="south_west"
              value="7"
              c:identifier="META_GRAVITY_SOUTH_WEST"
              glib:nick="south-west"
              glib:name="META_GRAVITY_SOUTH_WEST">
      </member>
      <member name="south"
              value="8"
              c:identifier="META_GRAVITY_SOUTH"
              glib:nick="south"
              glib:name="META_GRAVITY_SOUTH">
      </member>
      <member name="south_east"
              value="9"
              c:identifier="META_GRAVITY_SOUTH_EAST"
              glib:nick="south-east"
              glib:name="META_GRAVITY_SOUTH_EAST">
      </member>
      <member name="static"
              value="10"
              c:identifier="META_GRAVITY_STATIC"
              glib:nick="static"
              glib:name="META_GRAVITY_STATIC">
      </member>
      <function name="to_string" c:identifier="meta_gravity_to_string">
        <source-position filename="src/meta/util.h" line="85"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <parameter name="gravity" transfer-ownership="none">
            <type name="Gravity" c:type="MetaGravity"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <record name="Group"
            c:type="MetaGroup"
            disguised="1"
            opaque="1"
            introspectable="0">
      <doc xml:space="preserve"
           filename="src/x11/meta-x11-group.c"
           line="21">Mutter window groups</doc>
      <source-position filename="src/meta/meta-x11-types.h" line="21"/>
      <method name="list_windows" c:identifier="meta_group_list_windows">
        <source-position filename="src/meta/meta-x11-group.h" line="36"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/x11/meta-x11-group.c"
               line="154">List of windows</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Window"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/x11/meta-x11-group.c"
                 line="152">A #MetaGroup</doc>
            <type name="Group" c:type="MetaGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <function-macro name="IS_DISPLAY"
                    c:identifier="META_IS_DISPLAY"
                    introspectable="0">
      <source-position filename="src/meta/display.h" line="79"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_DISPLAY_CLASS"
                    c:identifier="META_IS_DISPLAY_CLASS"
                    introspectable="0">
      <source-position filename="src/meta/display.h" line="80"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WINDOW"
                    c:identifier="META_IS_WINDOW"
                    introspectable="0">
      <source-position filename="src/meta/window.h" line="95"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WINDOW_CLASS"
                    c:identifier="META_IS_WINDOW_CLASS"
                    introspectable="0">
      <source-position filename="src/meta/window.h" line="96"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WORKSPACE"
                    c:identifier="META_IS_WORKSPACE"
                    introspectable="0">
      <source-position filename="src/meta/workspace.h" line="29"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WORKSPACE_CLASS"
                    c:identifier="META_IS_WORKSPACE_CLASS"
                    introspectable="0">
      <source-position filename="src/meta/workspace.h" line="30"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <class name="IdleMonitor"
           c:symbol-prefix="idle_monitor"
           c:type="MetaIdleMonitor"
           parent="GObject.Object"
           glib:type-name="MetaIdleMonitor"
           glib:get-type="meta_idle_monitor_get_type"
           glib:type-struct="IdleMonitorClass">
      <doc xml:space="preserve"
           filename="src/backends/meta-idle-monitor.c"
           line="23">Mutter idle counter (similar to X's IDLETIME)</doc>
      <source-position filename="src/meta/meta-idle-monitor.h" line="28"/>
      <method name="add_idle_watch"
              c:identifier="meta_idle_monitor_add_idle_watch">
        <source-position filename="src/meta/meta-idle-monitor.h" line="37"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-idle-monitor.c"
               line="305">a watch id

Adds a watch for a specific idle time. The callback will be called
when the user has accumulated @interval_msec milliseconds of idle time.
This function will return an ID that can either be passed to
meta_idle_monitor_remove_watch(), or can be used to tell idle time
watches apart if you have more than one.

Also note that this function will only care about positive transitions
(user's idle time exceeding a certain time). If you want to know about
when the user has become active, use
meta_idle_monitor_add_user_active_watch().</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-idle-monitor.c"
                 line="298">A #MetaIdleMonitor</doc>
            <type name="IdleMonitor" c:type="MetaIdleMonitor*"/>
          </instance-parameter>
          <parameter name="interval_msec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-idle-monitor.c"
                 line="299">The idletime interval, in milliseconds</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="src/backends/meta-idle-monitor.c"
                 line="300">The callback to call when the user has
    accumulated @interval_msec milliseconds of idle time.</doc>
            <type name="IdleMonitorWatchFunc"
                  c:type="MetaIdleMonitorWatchFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/backends/meta-idle-monitor.c"
                 line="302">The user data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="src/backends/meta-idle-monitor.c"
                 line="303">A #GDestroyNotify</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_user_active_watch"
              c:identifier="meta_idle_monitor_add_user_active_watch">
        <source-position filename="src/meta/meta-idle-monitor.h" line="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-idle-monitor.c"
               line="347">a watch id

Add a one-time watch to know when the user is active again.
Note that this watch is one-time and will de-activate after the
function is called, for efficiency purposes. It's most convenient
to call this when an idle watch, as added by
meta_idle_monitor_add_idle_watch(), has triggered.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-idle-monitor.c"
                 line="341">A #MetaIdleMonitor</doc>
            <type name="IdleMonitor" c:type="MetaIdleMonitor*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="src/backends/meta-idle-monitor.c"
                 line="342">The callback to call when the user is
    active again.</doc>
            <type name="IdleMonitorWatchFunc"
                  c:type="MetaIdleMonitorWatchFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/backends/meta-idle-monitor.c"
                 line="344">The user data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="src/backends/meta-idle-monitor.c"
                 line="345">A #GDestroyNotify</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_idletime"
              c:identifier="meta_idle_monitor_get_idletime">
        <source-position filename="src/meta/meta-idle-monitor.h" line="54"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-idle-monitor.c"
               line="399">The current idle time, in milliseconds, or -1 for not supported</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-idle-monitor.c"
                 line="397">A #MetaIdleMonitor</doc>
            <type name="IdleMonitor" c:type="MetaIdleMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_watch"
              c:identifier="meta_idle_monitor_remove_watch">
        <doc xml:space="preserve"
             filename="src/backends/meta-idle-monitor.c"
             line="374">Removes an idle time watcher, previously added by
meta_idle_monitor_add_idle_watch() or
meta_idle_monitor_add_user_active_watch().</doc>
        <source-position filename="src/meta/meta-idle-monitor.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-idle-monitor.c"
                 line="376">A #MetaIdleMonitor</doc>
            <type name="IdleMonitor" c:type="MetaIdleMonitor*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-idle-monitor.c"
                 line="377">A watch ID</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="IdleMonitorClass"
            c:type="MetaIdleMonitorClass"
            glib:is-gtype-struct-for="IdleMonitor">
      <source-position filename="src/meta/meta-idle-monitor.h" line="28"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <callback name="IdleMonitorWatchFunc" c:type="MetaIdleMonitorWatchFunc">
      <source-position filename="src/meta/meta-idle-monitor.h" line="32"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="monitor" transfer-ownership="none">
          <type name="IdleMonitor" c:type="MetaIdleMonitor*"/>
        </parameter>
        <parameter name="watch_id" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <interface name="InhibitShortcutsDialog"
               c:symbol-prefix="inhibit_shortcuts_dialog"
               c:type="MetaInhibitShortcutsDialog"
               glib:type-name="MetaInhibitShortcutsDialog"
               glib:get-type="meta_inhibit_shortcuts_dialog_get_type"
               glib:type-struct="InhibitShortcutsDialogInterface">
      <source-position filename="src/meta/meta-inhibit-shortcuts-dialog.h"
                       line="43"/>
      <virtual-method name="hide" invoker="hide">
        <doc xml:space="preserve"
             filename="src/core/meta-inhibit-shortcuts-dialog.c"
             line="70">Hides the inhibit shortcuts dialog.</doc>
        <source-position filename="src/meta/meta-inhibit-shortcuts-dialog.h"
                         line="42"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-inhibit-shortcuts-dialog.c"
                 line="72">a #MetaInhibitShortcutsDialog</doc>
            <type name="InhibitShortcutsDialog"
                  c:type="MetaInhibitShortcutsDialog*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show" invoker="show">
        <doc xml:space="preserve"
             filename="src/core/meta-inhibit-shortcuts-dialog.c"
             line="53">Shows the inhibit shortcuts dialog.</doc>
        <source-position filename="src/meta/meta-inhibit-shortcuts-dialog.h"
                         line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-inhibit-shortcuts-dialog.c"
                 line="55">a #MetaInhibitShortcutsDialog</doc>
            <type name="InhibitShortcutsDialog"
                  c:type="MetaInhibitShortcutsDialog*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="hide" c:identifier="meta_inhibit_shortcuts_dialog_hide">
        <doc xml:space="preserve"
             filename="src/core/meta-inhibit-shortcuts-dialog.c"
             line="70">Hides the inhibit shortcuts dialog.</doc>
        <source-position filename="src/meta/meta-inhibit-shortcuts-dialog.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-inhibit-shortcuts-dialog.c"
                 line="72">a #MetaInhibitShortcutsDialog</doc>
            <type name="InhibitShortcutsDialog"
                  c:type="MetaInhibitShortcutsDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="response"
              c:identifier="meta_inhibit_shortcuts_dialog_response">
        <doc xml:space="preserve"
             filename="src/core/meta-inhibit-shortcuts-dialog.c"
             line="87">Responds and closes the dialog. To be called by #MetaInhibitShortcutsDialog
implementations.</doc>
        <source-position filename="src/meta/meta-inhibit-shortcuts-dialog.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-inhibit-shortcuts-dialog.c"
                 line="89">a #MetaInhibitShortcutsDialog</doc>
            <type name="InhibitShortcutsDialog"
                  c:type="MetaInhibitShortcutsDialog*"/>
          </instance-parameter>
          <parameter name="response" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-inhibit-shortcuts-dialog.c"
                 line="90">a #MetaInhibitShortcutsDialogResponse</doc>
            <type name="InhibitShortcutsDialogResponse"
                  c:type="MetaInhibitShortcutsDialogResponse"/>
          </parameter>
        </parameters>
      </method>
      <method name="show" c:identifier="meta_inhibit_shortcuts_dialog_show">
        <doc xml:space="preserve"
             filename="src/core/meta-inhibit-shortcuts-dialog.c"
             line="53">Shows the inhibit shortcuts dialog.</doc>
        <source-position filename="src/meta/meta-inhibit-shortcuts-dialog.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dialog" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-inhibit-shortcuts-dialog.c"
                 line="55">a #MetaInhibitShortcutsDialog</doc>
            <type name="InhibitShortcutsDialog"
                  c:type="MetaInhibitShortcutsDialog*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="window"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Window"/>
      </property>
      <glib:signal name="response" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="InhibitShortcutsDialogResponse"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="InhibitShortcutsDialogInterface"
            c:type="MetaInhibitShortcutsDialogInterface"
            glib:is-gtype-struct-for="InhibitShortcutsDialog">
      <source-position filename="src/meta/meta-inhibit-shortcuts-dialog.h"
                       line="43"/>
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="show">
        <callback name="show">
          <source-position filename="src/meta/meta-inhibit-shortcuts-dialog.h"
                           line="41"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="dialog" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/core/meta-inhibit-shortcuts-dialog.c"
                   line="55">a #MetaInhibitShortcutsDialog</doc>
              <type name="InhibitShortcutsDialog"
                    c:type="MetaInhibitShortcutsDialog*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hide">
        <callback name="hide">
          <source-position filename="src/meta/meta-inhibit-shortcuts-dialog.h"
                           line="42"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="dialog" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/core/meta-inhibit-shortcuts-dialog.c"
                   line="72">a #MetaInhibitShortcutsDialog</doc>
              <type name="InhibitShortcutsDialog"
                    c:type="MetaInhibitShortcutsDialog*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="InhibitShortcutsDialogResponse"
                 glib:type-name="MetaInhibitShortcutsDialogResponse"
                 glib:get-type="meta_inhibit_shortcuts_dialog_response_get_type"
                 c:type="MetaInhibitShortcutsDialogResponse">
      <member name="allow"
              value="0"
              c:identifier="META_INHIBIT_SHORTCUTS_DIALOG_RESPONSE_ALLOW"
              glib:nick="allow"
              glib:name="META_INHIBIT_SHORTCUTS_DIALOG_RESPONSE_ALLOW">
      </member>
      <member name="deny"
              value="1"
              c:identifier="META_INHIBIT_SHORTCUTS_DIALOG_RESPONSE_DENY"
              glib:nick="deny"
              glib:name="META_INHIBIT_SHORTCUTS_DIALOG_RESPONSE_DENY">
      </member>
    </enumeration>
    <record name="KeyBinding"
            c:type="MetaKeyBinding"
            opaque="1"
            glib:type-name="MetaKeyBinding"
            glib:get-type="meta_key_binding_get_type"
            c:symbol-prefix="key_binding">
      <source-position filename="src/meta/types.h" line="30"/>
      <method name="get_mask" c:identifier="meta_key_binding_get_mask">
        <source-position filename="src/meta/keybindings.h" line="32"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="binding" transfer-ownership="none">
            <type name="KeyBinding" c:type="MetaKeyBinding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_modifiers"
              c:identifier="meta_key_binding_get_modifiers">
        <source-position filename="src/meta/keybindings.h" line="29"/>
        <return-value transfer-ownership="none">
          <type name="Clutter.ModifierType" c:type="ClutterModifierType"/>
        </return-value>
        <parameters>
          <instance-parameter name="binding" transfer-ownership="none">
            <type name="KeyBinding" c:type="MetaKeyBinding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="meta_key_binding_get_name">
        <source-position filename="src/meta/keybindings.h" line="26"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="binding" transfer-ownership="none">
            <type name="KeyBinding" c:type="MetaKeyBinding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_builtin" c:identifier="meta_key_binding_is_builtin">
        <source-position filename="src/meta/keybindings.h" line="35"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="binding" transfer-ownership="none">
            <type name="KeyBinding" c:type="MetaKeyBinding*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_reversed" c:identifier="meta_key_binding_is_reversed">
        <source-position filename="src/meta/keybindings.h" line="38"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="binding" transfer-ownership="none">
            <type name="KeyBinding" c:type="MetaKeyBinding*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="KeyBindingAction"
                 glib:type-name="MetaKeyBindingAction"
                 glib:get-type="meta_key_binding_action_get_type"
                 c:type="MetaKeyBindingAction">
      <member name="none"
              value="0"
              c:identifier="META_KEYBINDING_ACTION_NONE"
              glib:nick="none"
              glib:name="META_KEYBINDING_ACTION_NONE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="231">FILLME</doc>
      </member>
      <member name="workspace_1"
              value="1"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_1"
              glib:nick="workspace-1"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_1">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="232">FILLME</doc>
      </member>
      <member name="workspace_2"
              value="2"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_2"
              glib:nick="workspace-2"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_2">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="233">FILLME</doc>
      </member>
      <member name="workspace_3"
              value="3"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_3"
              glib:nick="workspace-3"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_3">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="234">FILLME</doc>
      </member>
      <member name="workspace_4"
              value="4"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_4"
              glib:nick="workspace-4"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_4">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="235">FILLME</doc>
      </member>
      <member name="workspace_5"
              value="5"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_5"
              glib:nick="workspace-5"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_5">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="236">FILLME</doc>
      </member>
      <member name="workspace_6"
              value="6"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_6"
              glib:nick="workspace-6"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_6">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="237">FILLME</doc>
      </member>
      <member name="workspace_7"
              value="7"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_7"
              glib:nick="workspace-7"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_7">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="238">FILLME</doc>
      </member>
      <member name="workspace_8"
              value="8"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_8"
              glib:nick="workspace-8"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_8">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="239">FILLME</doc>
      </member>
      <member name="workspace_9"
              value="9"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_9"
              glib:nick="workspace-9"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_9">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="240">FILLME</doc>
      </member>
      <member name="workspace_10"
              value="10"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_10"
              glib:nick="workspace-10"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_10">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="241">FILLME</doc>
      </member>
      <member name="workspace_11"
              value="11"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_11"
              glib:nick="workspace-11"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_11">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="242">FILLME</doc>
      </member>
      <member name="workspace_12"
              value="12"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_12"
              glib:nick="workspace-12"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_12">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="243">FILLME</doc>
      </member>
      <member name="workspace_left"
              value="13"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_LEFT"
              glib:nick="workspace-left"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_LEFT">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="244">FILLME</doc>
      </member>
      <member name="workspace_right"
              value="14"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_RIGHT"
              glib:nick="workspace-right"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_RIGHT">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="245">FILLME</doc>
      </member>
      <member name="workspace_up"
              value="15"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_UP"
              glib:nick="workspace-up"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_UP">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="246">FILLME</doc>
      </member>
      <member name="workspace_down"
              value="16"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_DOWN"
              glib:nick="workspace-down"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_DOWN">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="247">FILLME</doc>
      </member>
      <member name="workspace_last"
              value="17"
              c:identifier="META_KEYBINDING_ACTION_WORKSPACE_LAST"
              glib:nick="workspace-last"
              glib:name="META_KEYBINDING_ACTION_WORKSPACE_LAST">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="248">FILLME</doc>
      </member>
      <member name="switch_applications"
              value="18"
              c:identifier="META_KEYBINDING_ACTION_SWITCH_APPLICATIONS"
              glib:nick="switch-applications"
              glib:name="META_KEYBINDING_ACTION_SWITCH_APPLICATIONS">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="249">FILLME</doc>
      </member>
      <member name="switch_applications_backward"
              value="19"
              c:identifier="META_KEYBINDING_ACTION_SWITCH_APPLICATIONS_BACKWARD"
              glib:nick="switch-applications-backward"
              glib:name="META_KEYBINDING_ACTION_SWITCH_APPLICATIONS_BACKWARD">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="250">FILLME</doc>
      </member>
      <member name="switch_group"
              value="20"
              c:identifier="META_KEYBINDING_ACTION_SWITCH_GROUP"
              glib:nick="switch-group"
              glib:name="META_KEYBINDING_ACTION_SWITCH_GROUP">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="251">FILLME</doc>
      </member>
      <member name="switch_group_backward"
              value="21"
              c:identifier="META_KEYBINDING_ACTION_SWITCH_GROUP_BACKWARD"
              glib:nick="switch-group-backward"
              glib:name="META_KEYBINDING_ACTION_SWITCH_GROUP_BACKWARD">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="252">FILLME</doc>
      </member>
      <member name="switch_windows"
              value="22"
              c:identifier="META_KEYBINDING_ACTION_SWITCH_WINDOWS"
              glib:nick="switch-windows"
              glib:name="META_KEYBINDING_ACTION_SWITCH_WINDOWS">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="253">FILLME</doc>
      </member>
      <member name="switch_windows_backward"
              value="23"
              c:identifier="META_KEYBINDING_ACTION_SWITCH_WINDOWS_BACKWARD"
              glib:nick="switch-windows-backward"
              glib:name="META_KEYBINDING_ACTION_SWITCH_WINDOWS_BACKWARD">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="254">FILLME</doc>
      </member>
      <member name="switch_panels"
              value="24"
              c:identifier="META_KEYBINDING_ACTION_SWITCH_PANELS"
              glib:nick="switch-panels"
              glib:name="META_KEYBINDING_ACTION_SWITCH_PANELS">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="255">FILLME</doc>
      </member>
      <member name="switch_panels_backward"
              value="25"
              c:identifier="META_KEYBINDING_ACTION_SWITCH_PANELS_BACKWARD"
              glib:nick="switch-panels-backward"
              glib:name="META_KEYBINDING_ACTION_SWITCH_PANELS_BACKWARD">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="256">FILLME</doc>
      </member>
      <member name="cycle_group"
              value="26"
              c:identifier="META_KEYBINDING_ACTION_CYCLE_GROUP"
              glib:nick="cycle-group"
              glib:name="META_KEYBINDING_ACTION_CYCLE_GROUP">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="257">FILLME</doc>
      </member>
      <member name="cycle_group_backward"
              value="27"
              c:identifier="META_KEYBINDING_ACTION_CYCLE_GROUP_BACKWARD"
              glib:nick="cycle-group-backward"
              glib:name="META_KEYBINDING_ACTION_CYCLE_GROUP_BACKWARD">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="258">FILLME</doc>
      </member>
      <member name="cycle_windows"
              value="28"
              c:identifier="META_KEYBINDING_ACTION_CYCLE_WINDOWS"
              glib:nick="cycle-windows"
              glib:name="META_KEYBINDING_ACTION_CYCLE_WINDOWS">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="259">FILLME</doc>
      </member>
      <member name="cycle_windows_backward"
              value="29"
              c:identifier="META_KEYBINDING_ACTION_CYCLE_WINDOWS_BACKWARD"
              glib:nick="cycle-windows-backward"
              glib:name="META_KEYBINDING_ACTION_CYCLE_WINDOWS_BACKWARD">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="260">FILLME</doc>
      </member>
      <member name="cycle_panels"
              value="30"
              c:identifier="META_KEYBINDING_ACTION_CYCLE_PANELS"
              glib:nick="cycle-panels"
              glib:name="META_KEYBINDING_ACTION_CYCLE_PANELS">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="261">FILLME</doc>
      </member>
      <member name="cycle_panels_backward"
              value="31"
              c:identifier="META_KEYBINDING_ACTION_CYCLE_PANELS_BACKWARD"
              glib:nick="cycle-panels-backward"
              glib:name="META_KEYBINDING_ACTION_CYCLE_PANELS_BACKWARD">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="262">FILLME</doc>
      </member>
      <member name="show_desktop"
              value="32"
              c:identifier="META_KEYBINDING_ACTION_SHOW_DESKTOP"
              glib:nick="show-desktop"
              glib:name="META_KEYBINDING_ACTION_SHOW_DESKTOP">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="263">FILLME</doc>
      </member>
      <member name="panel_run_dialog"
              value="33"
              c:identifier="META_KEYBINDING_ACTION_PANEL_RUN_DIALOG"
              glib:nick="panel-run-dialog"
              glib:name="META_KEYBINDING_ACTION_PANEL_RUN_DIALOG">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="264">FILLME</doc>
      </member>
      <member name="toggle_recording"
              value="34"
              c:identifier="META_KEYBINDING_ACTION_TOGGLE_RECORDING"
              glib:nick="toggle-recording"
              glib:name="META_KEYBINDING_ACTION_TOGGLE_RECORDING">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="265">FILLME</doc>
      </member>
      <member name="set_spew_mark"
              value="35"
              c:identifier="META_KEYBINDING_ACTION_SET_SPEW_MARK"
              glib:nick="set-spew-mark"
              glib:name="META_KEYBINDING_ACTION_SET_SPEW_MARK">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="266">FILLME</doc>
      </member>
      <member name="activate_window_menu"
              value="36"
              c:identifier="META_KEYBINDING_ACTION_ACTIVATE_WINDOW_MENU"
              glib:nick="activate-window-menu"
              glib:name="META_KEYBINDING_ACTION_ACTIVATE_WINDOW_MENU">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="267">FILLME</doc>
      </member>
      <member name="toggle_fullscreen"
              value="37"
              c:identifier="META_KEYBINDING_ACTION_TOGGLE_FULLSCREEN"
              glib:nick="toggle-fullscreen"
              glib:name="META_KEYBINDING_ACTION_TOGGLE_FULLSCREEN">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="268">FILLME</doc>
      </member>
      <member name="toggle_maximized"
              value="38"
              c:identifier="META_KEYBINDING_ACTION_TOGGLE_MAXIMIZED"
              glib:nick="toggle-maximized"
              glib:name="META_KEYBINDING_ACTION_TOGGLE_MAXIMIZED">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="269">FILLME</doc>
      </member>
      <member name="toggle_tiled_left"
              value="39"
              c:identifier="META_KEYBINDING_ACTION_TOGGLE_TILED_LEFT"
              glib:nick="toggle-tiled-left"
              glib:name="META_KEYBINDING_ACTION_TOGGLE_TILED_LEFT">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="270">FILLME</doc>
      </member>
      <member name="toggle_tiled_right"
              value="40"
              c:identifier="META_KEYBINDING_ACTION_TOGGLE_TILED_RIGHT"
              glib:nick="toggle-tiled-right"
              glib:name="META_KEYBINDING_ACTION_TOGGLE_TILED_RIGHT">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="271">FILLME</doc>
      </member>
      <member name="toggle_above"
              value="41"
              c:identifier="META_KEYBINDING_ACTION_TOGGLE_ABOVE"
              glib:nick="toggle-above"
              glib:name="META_KEYBINDING_ACTION_TOGGLE_ABOVE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="272">FILLME</doc>
      </member>
      <member name="maximize"
              value="42"
              c:identifier="META_KEYBINDING_ACTION_MAXIMIZE"
              glib:nick="maximize"
              glib:name="META_KEYBINDING_ACTION_MAXIMIZE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="273">FILLME</doc>
      </member>
      <member name="unmaximize"
              value="43"
              c:identifier="META_KEYBINDING_ACTION_UNMAXIMIZE"
              glib:nick="unmaximize"
              glib:name="META_KEYBINDING_ACTION_UNMAXIMIZE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="274">FILLME</doc>
      </member>
      <member name="toggle_shaded"
              value="44"
              c:identifier="META_KEYBINDING_ACTION_TOGGLE_SHADED"
              glib:nick="toggle-shaded"
              glib:name="META_KEYBINDING_ACTION_TOGGLE_SHADED">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="275">FILLME</doc>
      </member>
      <member name="minimize"
              value="45"
              c:identifier="META_KEYBINDING_ACTION_MINIMIZE"
              glib:nick="minimize"
              glib:name="META_KEYBINDING_ACTION_MINIMIZE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="276">FILLME</doc>
      </member>
      <member name="close"
              value="46"
              c:identifier="META_KEYBINDING_ACTION_CLOSE"
              glib:nick="close"
              glib:name="META_KEYBINDING_ACTION_CLOSE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="277">FILLME</doc>
      </member>
      <member name="begin_move"
              value="47"
              c:identifier="META_KEYBINDING_ACTION_BEGIN_MOVE"
              glib:nick="begin-move"
              glib:name="META_KEYBINDING_ACTION_BEGIN_MOVE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="278">FILLME</doc>
      </member>
      <member name="begin_resize"
              value="48"
              c:identifier="META_KEYBINDING_ACTION_BEGIN_RESIZE"
              glib:nick="begin-resize"
              glib:name="META_KEYBINDING_ACTION_BEGIN_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="279">FILLME</doc>
      </member>
      <member name="toggle_on_all_workspaces"
              value="49"
              c:identifier="META_KEYBINDING_ACTION_TOGGLE_ON_ALL_WORKSPACES"
              glib:nick="toggle-on-all-workspaces"
              glib:name="META_KEYBINDING_ACTION_TOGGLE_ON_ALL_WORKSPACES">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="280">FILLME</doc>
      </member>
      <member name="move_to_workspace_1"
              value="50"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_1"
              glib:nick="move-to-workspace-1"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_1">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="281">FILLME</doc>
      </member>
      <member name="move_to_workspace_2"
              value="51"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_2"
              glib:nick="move-to-workspace-2"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_2">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="282">FILLME</doc>
      </member>
      <member name="move_to_workspace_3"
              value="52"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_3"
              glib:nick="move-to-workspace-3"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_3">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="283">FILLME</doc>
      </member>
      <member name="move_to_workspace_4"
              value="53"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_4"
              glib:nick="move-to-workspace-4"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_4">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="284">FILLME</doc>
      </member>
      <member name="move_to_workspace_5"
              value="54"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_5"
              glib:nick="move-to-workspace-5"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_5">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="285">FILLME</doc>
      </member>
      <member name="move_to_workspace_6"
              value="55"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_6"
              glib:nick="move-to-workspace-6"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_6">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="286">FILLME</doc>
      </member>
      <member name="move_to_workspace_7"
              value="56"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_7"
              glib:nick="move-to-workspace-7"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_7">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="287">FILLME</doc>
      </member>
      <member name="move_to_workspace_8"
              value="57"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_8"
              glib:nick="move-to-workspace-8"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_8">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="288">FILLME</doc>
      </member>
      <member name="move_to_workspace_9"
              value="58"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_9"
              glib:nick="move-to-workspace-9"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_9">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="289">FILLME</doc>
      </member>
      <member name="move_to_workspace_10"
              value="59"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_10"
              glib:nick="move-to-workspace-10"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_10">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="290">FILLME</doc>
      </member>
      <member name="move_to_workspace_11"
              value="60"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_11"
              glib:nick="move-to-workspace-11"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_11">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="291">FILLME</doc>
      </member>
      <member name="move_to_workspace_12"
              value="61"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_12"
              glib:nick="move-to-workspace-12"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_12">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="292">FILLME</doc>
      </member>
      <member name="move_to_workspace_left"
              value="62"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_LEFT"
              glib:nick="move-to-workspace-left"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_LEFT">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="293">FILLME</doc>
      </member>
      <member name="move_to_workspace_right"
              value="63"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_RIGHT"
              glib:nick="move-to-workspace-right"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_RIGHT">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="294">FILLME</doc>
      </member>
      <member name="move_to_workspace_up"
              value="64"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_UP"
              glib:nick="move-to-workspace-up"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_UP">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="295">FILLME</doc>
      </member>
      <member name="move_to_workspace_down"
              value="65"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_DOWN"
              glib:nick="move-to-workspace-down"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_DOWN">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="296">FILLME</doc>
      </member>
      <member name="move_to_workspace_last"
              value="66"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_LAST"
              glib:nick="move-to-workspace-last"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_WORKSPACE_LAST">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="297">FILLME</doc>
      </member>
      <member name="move_to_monitor_left"
              value="67"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_MONITOR_LEFT"
              glib:nick="move-to-monitor-left"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_MONITOR_LEFT">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="298">FILLME</doc>
      </member>
      <member name="move_to_monitor_right"
              value="68"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_MONITOR_RIGHT"
              glib:nick="move-to-monitor-right"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_MONITOR_RIGHT">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="299">FILLME</doc>
      </member>
      <member name="move_to_monitor_up"
              value="69"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_MONITOR_UP"
              glib:nick="move-to-monitor-up"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_MONITOR_UP">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="300">FILLME</doc>
      </member>
      <member name="move_to_monitor_down"
              value="70"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_MONITOR_DOWN"
              glib:nick="move-to-monitor-down"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_MONITOR_DOWN">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="301">FILLME</doc>
      </member>
      <member name="raise_or_lower"
              value="71"
              c:identifier="META_KEYBINDING_ACTION_RAISE_OR_LOWER"
              glib:nick="raise-or-lower"
              glib:name="META_KEYBINDING_ACTION_RAISE_OR_LOWER">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="302">FILLME</doc>
      </member>
      <member name="raise"
              value="72"
              c:identifier="META_KEYBINDING_ACTION_RAISE"
              glib:nick="raise"
              glib:name="META_KEYBINDING_ACTION_RAISE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="303">FILLME</doc>
      </member>
      <member name="lower"
              value="73"
              c:identifier="META_KEYBINDING_ACTION_LOWER"
              glib:nick="lower"
              glib:name="META_KEYBINDING_ACTION_LOWER">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="304">FILLME</doc>
      </member>
      <member name="maximize_vertically"
              value="74"
              c:identifier="META_KEYBINDING_ACTION_MAXIMIZE_VERTICALLY"
              glib:nick="maximize-vertically"
              glib:name="META_KEYBINDING_ACTION_MAXIMIZE_VERTICALLY">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="305">FILLME</doc>
      </member>
      <member name="maximize_horizontally"
              value="75"
              c:identifier="META_KEYBINDING_ACTION_MAXIMIZE_HORIZONTALLY"
              glib:nick="maximize-horizontally"
              glib:name="META_KEYBINDING_ACTION_MAXIMIZE_HORIZONTALLY">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="306">FILLME</doc>
      </member>
      <member name="move_to_corner_nw"
              value="76"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_CORNER_NW"
              glib:nick="move-to-corner-nw"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_CORNER_NW">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="307">FILLME</doc>
      </member>
      <member name="move_to_corner_ne"
              value="77"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_CORNER_NE"
              glib:nick="move-to-corner-ne"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_CORNER_NE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="308">FILLME</doc>
      </member>
      <member name="move_to_corner_sw"
              value="78"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_CORNER_SW"
              glib:nick="move-to-corner-sw"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_CORNER_SW">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="309">FILLME</doc>
      </member>
      <member name="move_to_corner_se"
              value="79"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_CORNER_SE"
              glib:nick="move-to-corner-se"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_CORNER_SE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="310">FILLME</doc>
      </member>
      <member name="move_to_side_n"
              value="80"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_SIDE_N"
              glib:nick="move-to-side-n"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_SIDE_N">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="311">FILLME</doc>
      </member>
      <member name="move_to_side_s"
              value="81"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_SIDE_S"
              glib:nick="move-to-side-s"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_SIDE_S">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="312">FILLME</doc>
      </member>
      <member name="move_to_side_e"
              value="82"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_SIDE_E"
              glib:nick="move-to-side-e"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_SIDE_E">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="313">FILLME</doc>
      </member>
      <member name="move_to_side_w"
              value="83"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_SIDE_W"
              glib:nick="move-to-side-w"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_SIDE_W">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="314">FILLME</doc>
      </member>
      <member name="move_to_center"
              value="84"
              c:identifier="META_KEYBINDING_ACTION_MOVE_TO_CENTER"
              glib:nick="move-to-center"
              glib:name="META_KEYBINDING_ACTION_MOVE_TO_CENTER">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="315">FILLME</doc>
      </member>
      <member name="overlay_key"
              value="85"
              c:identifier="META_KEYBINDING_ACTION_OVERLAY_KEY"
              glib:nick="overlay-key"
              glib:name="META_KEYBINDING_ACTION_OVERLAY_KEY">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="316">FILLME</doc>
      </member>
      <member name="locate_pointer_key"
              value="86"
              c:identifier="META_KEYBINDING_ACTION_LOCATE_POINTER_KEY"
              glib:nick="locate-pointer-key"
              glib:name="META_KEYBINDING_ACTION_LOCATE_POINTER_KEY">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="317">FILLME</doc>
      </member>
      <member name="iso_next_group"
              value="87"
              c:identifier="META_KEYBINDING_ACTION_ISO_NEXT_GROUP"
              glib:nick="iso-next-group"
              glib:name="META_KEYBINDING_ACTION_ISO_NEXT_GROUP">
      </member>
      <member name="always_on_top"
              value="88"
              c:identifier="META_KEYBINDING_ACTION_ALWAYS_ON_TOP"
              glib:nick="always-on-top"
              glib:name="META_KEYBINDING_ACTION_ALWAYS_ON_TOP">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="318">FILLME</doc>
      </member>
      <member name="switch_monitor"
              value="89"
              c:identifier="META_KEYBINDING_ACTION_SWITCH_MONITOR"
              glib:nick="switch-monitor"
              glib:name="META_KEYBINDING_ACTION_SWITCH_MONITOR">
      </member>
      <member name="rotate_monitor"
              value="90"
              c:identifier="META_KEYBINDING_ACTION_ROTATE_MONITOR"
              glib:nick="rotate-monitor"
              glib:name="META_KEYBINDING_ACTION_ROTATE_MONITOR">
      </member>
      <member name="last"
              value="91"
              c:identifier="META_KEYBINDING_ACTION_LAST"
              glib:nick="last"
              glib:name="META_KEYBINDING_ACTION_LAST">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="319">FILLME</doc>
      </member>
    </enumeration>
    <bitfield name="KeyBindingFlags"
              glib:type-name="MetaKeyBindingFlags"
              glib:get-type="meta_key_binding_flags_get_type"
              c:type="MetaKeyBindingFlags">
      <member name="none"
              value="0"
              c:identifier="META_KEY_BINDING_NONE"
              glib:nick="none"
              glib:name="META_KEY_BINDING_NONE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="425">none</doc>
      </member>
      <member name="per_window"
              value="1"
              c:identifier="META_KEY_BINDING_PER_WINDOW"
              glib:nick="per-window"
              glib:name="META_KEY_BINDING_PER_WINDOW">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="426">per-window</doc>
      </member>
      <member name="builtin"
              value="2"
              c:identifier="META_KEY_BINDING_BUILTIN"
              glib:nick="builtin"
              glib:name="META_KEY_BINDING_BUILTIN">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="427">built-in</doc>
      </member>
      <member name="is_reversed"
              value="4"
              c:identifier="META_KEY_BINDING_IS_REVERSED"
              glib:nick="is-reversed"
              glib:name="META_KEY_BINDING_IS_REVERSED">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="428">is reversed</doc>
      </member>
      <member name="non_maskable"
              value="8"
              c:identifier="META_KEY_BINDING_NON_MASKABLE"
              glib:nick="non-maskable"
              glib:name="META_KEY_BINDING_NON_MASKABLE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="429">always active</doc>
      </member>
      <member name="ignore_autorepeat"
              value="16"
              c:identifier="META_KEY_BINDING_IGNORE_AUTOREPEAT"
              glib:nick="ignore-autorepeat"
              glib:name="META_KEY_BINDING_IGNORE_AUTOREPEAT">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="430">ignore autorepeat</doc>
      </member>
      <member name="no_auto_grab"
              value="32"
              c:identifier="META_KEY_BINDING_NO_AUTO_GRAB"
              glib:nick="no-auto-grab"
              glib:name="META_KEY_BINDING_NO_AUTO_GRAB">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="431">not grabbed automatically</doc>
      </member>
      <member name="custom_trigger"
              value="64"
              c:identifier="META_KEY_BINDING_CUSTOM_TRIGGER"
              glib:nick="custom-trigger"
              glib:name="META_KEY_BINDING_CUSTOM_TRIGGER">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="432">uses a custom keybinding action</doc>
      </member>
      <member name="trigger_release"
              value="128"
              c:identifier="META_KEY_BINDING_TRIGGER_RELEASE"
              glib:nick="trigger-release"
              glib:name="META_KEY_BINDING_TRIGGER_RELEASE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="433">notifies on release in addition to press</doc>
      </member>
    </bitfield>
    <callback name="KeyHandlerFunc" c:type="MetaKeyHandlerFunc">
      <source-position filename="src/meta/prefs.h" line="457"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="display" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/meta/prefs.h"
               line="450">a #MetaDisplay</doc>
          <type name="Display" c:type="MetaDisplay*"/>
        </parameter>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/meta/prefs.h"
               line="451">a #MetaWindow</doc>
          <type name="Window" c:type="MetaWindow*"/>
        </parameter>
        <parameter name="event" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/meta/prefs.h"
               line="452">a #ClutterEvent</doc>
          <type name="Clutter.Event" c:type="const ClutterEvent*"/>
        </parameter>
        <parameter name="binding" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/meta/prefs.h"
               line="453">a #MetaKeyBinding</doc>
          <type name="KeyBinding" c:type="MetaKeyBinding*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="4">
          <doc xml:space="preserve"
               filename="src/meta/prefs.h"
               line="454">data passed to the function</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <bitfield name="KeyboardA11yFlags"
              glib:type-name="MetaKeyboardA11yFlags"
              glib:get-type="meta_keyboard_a11y_flags_get_type"
              c:type="MetaKeyboardA11yFlags">
      <doc xml:space="preserve"
           filename="src/meta/meta-enums.h"
           line="384">Keyboard accessibility features.</doc>
      <member name="keyboard_enabled"
              value="1"
              c:identifier="META_A11Y_KEYBOARD_ENABLED"
              glib:nick="keyboard-enabled"
              glib:name="META_A11Y_KEYBOARD_ENABLED">
      </member>
      <member name="timeout_enabled"
              value="2"
              c:identifier="META_A11Y_TIMEOUT_ENABLED"
              glib:nick="timeout-enabled"
              glib:name="META_A11Y_TIMEOUT_ENABLED">
      </member>
      <member name="mouse_keys_enabled"
              value="4"
              c:identifier="META_A11Y_MOUSE_KEYS_ENABLED"
              glib:nick="mouse-keys-enabled"
              glib:name="META_A11Y_MOUSE_KEYS_ENABLED">
      </member>
      <member name="slow_keys_enabled"
              value="8"
              c:identifier="META_A11Y_SLOW_KEYS_ENABLED"
              glib:nick="slow-keys-enabled"
              glib:name="META_A11Y_SLOW_KEYS_ENABLED">
      </member>
      <member name="slow_keys_beep_press"
              value="16"
              c:identifier="META_A11Y_SLOW_KEYS_BEEP_PRESS"
              glib:nick="slow-keys-beep-press"
              glib:name="META_A11Y_SLOW_KEYS_BEEP_PRESS">
      </member>
      <member name="slow_keys_beep_accept"
              value="32"
              c:identifier="META_A11Y_SLOW_KEYS_BEEP_ACCEPT"
              glib:nick="slow-keys-beep-accept"
              glib:name="META_A11Y_SLOW_KEYS_BEEP_ACCEPT">
      </member>
      <member name="slow_keys_beep_reject"
              value="64"
              c:identifier="META_A11Y_SLOW_KEYS_BEEP_REJECT"
              glib:nick="slow-keys-beep-reject"
              glib:name="META_A11Y_SLOW_KEYS_BEEP_REJECT">
      </member>
      <member name="bounce_keys_enabled"
              value="128"
              c:identifier="META_A11Y_BOUNCE_KEYS_ENABLED"
              glib:nick="bounce-keys-enabled"
              glib:name="META_A11Y_BOUNCE_KEYS_ENABLED">
      </member>
      <member name="bounce_keys_beep_reject"
              value="256"
              c:identifier="META_A11Y_BOUNCE_KEYS_BEEP_REJECT"
              glib:nick="bounce-keys-beep-reject"
              glib:name="META_A11Y_BOUNCE_KEYS_BEEP_REJECT">
      </member>
      <member name="toggle_keys_enabled"
              value="512"
              c:identifier="META_A11Y_TOGGLE_KEYS_ENABLED"
              glib:nick="toggle-keys-enabled"
              glib:name="META_A11Y_TOGGLE_KEYS_ENABLED">
      </member>
      <member name="sticky_keys_enabled"
              value="1024"
              c:identifier="META_A11Y_STICKY_KEYS_ENABLED"
              glib:nick="sticky-keys-enabled"
              glib:name="META_A11Y_STICKY_KEYS_ENABLED">
      </member>
      <member name="sticky_keys_two_key_off"
              value="2048"
              c:identifier="META_A11Y_STICKY_KEYS_TWO_KEY_OFF"
              glib:nick="sticky-keys-two-key-off"
              glib:name="META_A11Y_STICKY_KEYS_TWO_KEY_OFF">
      </member>
      <member name="sticky_keys_beep"
              value="4096"
              c:identifier="META_A11Y_STICKY_KEYS_BEEP"
              glib:nick="sticky-keys-beep"
              glib:name="META_A11Y_STICKY_KEYS_BEEP">
      </member>
      <member name="feature_state_change_beep"
              value="8192"
              c:identifier="META_A11Y_FEATURE_STATE_CHANGE_BEEP"
              glib:nick="feature-state-change-beep"
              glib:name="META_A11Y_FEATURE_STATE_CHANGE_BEEP">
      </member>
    </bitfield>
    <enumeration name="LaterType"
                 glib:type-name="MetaLaterType"
                 glib:get-type="meta_later_type_get_type"
                 c:type="MetaLaterType">
      <member name="resize"
              value="0"
              c:identifier="META_LATER_RESIZE"
              glib:nick="resize"
              glib:name="META_LATER_RESIZE">
        <doc xml:space="preserve"
             filename="src/meta/meta-later.h"
             line="26">call in a resize processing phase that is done
  before GTK+ repainting (including window borders) is done.</doc>
      </member>
      <member name="calc_showing"
              value="1"
              c:identifier="META_LATER_CALC_SHOWING"
              glib:nick="calc-showing"
              glib:name="META_LATER_CALC_SHOWING">
        <doc xml:space="preserve"
             filename="src/meta/meta-later.h"
             line="28">used by Mutter to compute which windows should be mapped</doc>
      </member>
      <member name="check_fullscreen"
              value="2"
              c:identifier="META_LATER_CHECK_FULLSCREEN"
              glib:nick="check-fullscreen"
              glib:name="META_LATER_CHECK_FULLSCREEN">
        <doc xml:space="preserve"
             filename="src/meta/meta-later.h"
             line="29">used by Mutter to see if there's a fullscreen window</doc>
      </member>
      <member name="sync_stack"
              value="3"
              c:identifier="META_LATER_SYNC_STACK"
              glib:nick="sync-stack"
              glib:name="META_LATER_SYNC_STACK">
        <doc xml:space="preserve"
             filename="src/meta/meta-later.h"
             line="30">used by Mutter to send it's idea of the stacking order to the server</doc>
      </member>
      <member name="before_redraw"
              value="4"
              c:identifier="META_LATER_BEFORE_REDRAW"
              glib:nick="before-redraw"
              glib:name="META_LATER_BEFORE_REDRAW">
        <doc xml:space="preserve"
             filename="src/meta/meta-later.h"
             line="31">call before the stage is redrawn</doc>
      </member>
      <member name="idle"
              value="5"
              c:identifier="META_LATER_IDLE"
              glib:nick="idle"
              glib:name="META_LATER_IDLE">
        <doc xml:space="preserve"
             filename="src/meta/meta-later.h"
             line="32">call at a very low priority (can be blocked
   by running animations or redrawing applications)</doc>
      </member>
    </enumeration>
    <class name="Laters"
           c:symbol-prefix="laters"
           c:type="MetaLaters"
           parent="GObject.Object"
           glib:type-name="MetaLaters"
           glib:get-type="meta_laters_get_type"
           glib:type-struct="LatersClass">
      <source-position filename="src/meta/meta-later.h" line="47"/>
      <method name="add" c:identifier="meta_laters_add">
        <doc xml:space="preserve"
             filename="src/compositor/meta-later.c"
             line="249">Sets up a callback  to be called at some later time. @when determines the
particular later occasion at which it is called. This is much like g_idle_add(),
except that the functions interact properly with clutter event handling.
If a "later" function is added from a clutter event handler, and is supposed
to be run before the stage is redrawn, it will be run before that redraw
of the stage, not the next one.</doc>
        <source-position filename="src/meta/meta-later.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-later.c"
               line="264">an integer ID (guaranteed to be non-zero) that can be used
 to cancel the callback and prevent it from being run.</doc>
          <type name="guint" c:type="unsigned int"/>
        </return-value>
        <parameters>
          <instance-parameter name="laters" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-later.c"
                 line="251">a #MetaLaters</doc>
            <type name="Laters" c:type="MetaLaters*"/>
          </instance-parameter>
          <parameter name="when" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-later.c"
                 line="252">enumeration value determining the phase at which to run the callback</doc>
            <type name="LaterType" c:type="MetaLaterType"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-later.c"
                 line="253">callback to run later</doc>
            <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-later.c"
                 line="254">data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-later.c"
                 line="255">function to call to destroy @data when it is no longer in use, or %NULL</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove" c:identifier="meta_laters_remove">
        <doc xml:space="preserve"
             filename="src/compositor/meta-later.c"
             line="313">Removes a callback added with meta_later_add()</doc>
        <source-position filename="src/meta/meta-later.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="laters" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-later.c"
                 line="315">a #MetaLaters</doc>
            <type name="Laters" c:type="MetaLaters*"/>
          </instance-parameter>
          <parameter name="later_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-later.c"
                 line="316">the integer ID returned from meta_later_add()</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="LatersClass"
            c:type="MetaLatersClass"
            glib:is-gtype-struct-for="Laters">
      <source-position filename="src/meta/meta-later.h" line="47"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="LaunchContext"
           c:symbol-prefix="launch_context"
           c:type="MetaLaunchContext"
           parent="Gio.AppLaunchContext"
           glib:type-name="MetaLaunchContext"
           glib:get-type="meta_launch_context_get_type"
           glib:type-struct="LaunchContextClass">
      <source-position filename="src/meta/meta-launch-context.h" line="25"/>
      <method name="set_timestamp"
              c:identifier="meta_launch_context_set_timestamp"
              glib:set-property="timestamp">
        <source-position filename="src/meta/meta-launch-context.h" line="30"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="LaunchContext" c:type="MetaLaunchContext*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="uint32_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_workspace"
              c:identifier="meta_launch_context_set_workspace"
              glib:set-property="workspace">
        <source-position filename="src/meta/meta-launch-context.h" line="34"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="context" transfer-ownership="none">
            <type name="LaunchContext" c:type="MetaLaunchContext*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </parameter>
        </parameters>
      </method>
      <property name="display"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Display"/>
      </property>
      <property name="timestamp"
                writable="1"
                transfer-ownership="none"
                setter="set_timestamp"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="workspace"
                writable="1"
                transfer-ownership="none"
                setter="set_workspace">
        <type name="Workspace"/>
      </property>
    </class>
    <record name="LaunchContextClass"
            c:type="MetaLaunchContextClass"
            glib:is-gtype-struct-for="LaunchContext">
      <source-position filename="src/meta/meta-launch-context.h" line="25"/>
      <field name="parent_class">
        <type name="Gio.AppLaunchContextClass"
              c:type="GAppLaunchContextClass"/>
      </field>
    </record>
    <class name="LogicalMonitor"
           c:symbol-prefix="logical_monitor"
           c:type="MetaLogicalMonitor"
           parent="GObject.Object"
           glib:type-name="MetaLogicalMonitor"
           glib:get-type="meta_logical_monitor_get_type"
           glib:type-struct="LogicalMonitorClass">
      <doc xml:space="preserve"
           filename="src/backends/meta-logical-monitor.c"
           line="20">An abstraction for a monitor(set) and its configuration.

A logical monitor is a group of one or more physical monitors that
must behave and be treated as single one. This happens, for example,
when 2 monitors are mirrored. Each physical monitor is represented
by a [class@Meta.Monitor].

#MetaLogicalMonitor has a single viewport, with its owns transformations
(such as scaling), that are applied to all the [class@Meta.Monitor]s that
are grouped by it.

#MetaLogicalMonitor provides an abstraction that makes it easy to handle
the specifics of setting up different [class@Meta.Monitor]s. It then can
be used more easily by #MetaRendererView.</doc>
      <source-position filename="src/meta/meta-logical-monitor.h" line="26"/>
      <method name="get_monitors"
              c:identifier="meta_logical_monitor_get_monitors">
        <doc xml:space="preserve"
             filename="src/backends/meta-logical-monitor.c"
             line="260">Returns the list of [class@Meta.Monitor]s.</doc>
        <source-position filename="src/meta/meta-logical-monitor.h" line="32"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-logical-monitor.c"
               line="266">
The list of [class@Meta.Monitor]s.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Monitor"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="logical_monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-logical-monitor.c"
                 line="262">A #MetaLogicalMonitor</doc>
            <type name="LogicalMonitor" c:type="MetaLogicalMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_number" c:identifier="meta_logical_monitor_get_number">
        <doc xml:space="preserve"
             filename="src/backends/meta-logical-monitor.c"
             line="245">Returns the [class@Meta.Monitor]s number which is compatible with the monitor
API on [class@Meta.Display] until the next monitors-changed.</doc>
        <source-position filename="src/meta/meta-logical-monitor.h" line="35"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-logical-monitor.c"
               line="252">The [class@Meta.Monitor]s number</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="logical_monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-logical-monitor.c"
                 line="247">A #MetaLogicalMonitor</doc>
            <type name="LogicalMonitor" c:type="MetaLogicalMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="LogicalMonitorClass"
            c:type="MetaLogicalMonitorClass"
            glib:is-gtype-struct-for="LogicalMonitor">
      <source-position filename="src/meta/meta-logical-monitor.h" line="26"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <bitfield name="MaximizeFlags"
              glib:type-name="MetaMaximizeFlags"
              glib:get-type="meta_maximize_flags_get_type"
              c:type="MetaMaximizeFlags">
      <member name="horizontal"
              value="1"
              c:identifier="META_MAXIMIZE_HORIZONTAL"
              glib:nick="horizontal"
              glib:name="META_MAXIMIZE_HORIZONTAL">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="70">Horizontal</doc>
      </member>
      <member name="vertical"
              value="2"
              c:identifier="META_MAXIMIZE_VERTICAL"
              glib:nick="vertical"
              glib:name="META_MAXIMIZE_VERTICAL">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="71">Vertical</doc>
      </member>
      <member name="both"
              value="3"
              c:identifier="META_MAXIMIZE_BOTH"
              glib:nick="both"
              glib:name="META_MAXIMIZE_BOTH">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="72">Both</doc>
      </member>
    </bitfield>
    <class name="Monitor"
           c:symbol-prefix="monitor"
           parent="GObject.Object"
           glib:type-name="MetaMonitor"
           glib:get-type="meta_monitor_get_type"
           glib:type-struct="MonitorClass">
      <source-position filename="src/meta/meta-monitor.h" line="24"/>
      <method name="get_backlight" c:identifier="meta_monitor_get_backlight">
        <doc xml:space="preserve"
             filename="src/backends/meta-monitor.c"
             line="2769">Returns the [class@Meta.Backlight] of the monitor, or NULL if it has no
controllable backlight.</doc>
        <source-position filename="src/meta/meta-monitor.h" line="54"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/backends/meta-monitor.c"
               line="2776">The [class@Meta.Backlight].</doc>
          <type name="Backlight" c:type="MetaBacklight*"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor.c"
                 line="2771">A #MetaMonitor object</doc>
            <type name="Monitor" c:type="MetaMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_connector" c:identifier="meta_monitor_get_connector">
        <doc xml:space="preserve"
             filename="src/backends/meta-monitor.c"
             line="549">Get the connector name of the monitor.</doc>
        <source-position filename="src/meta/meta-monitor.h" line="33"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-monitor.c"
               line="555">The connector name of the monitor.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor.c"
                 line="551">A #MetaMonitor object</doc>
            <type name="Monitor" c:type="MetaMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_display_name"
              c:identifier="meta_monitor_get_display_name">
        <doc xml:space="preserve"
             filename="src/backends/meta-monitor.c"
             line="2613">Get the displayable name of the monitor.</doc>
        <source-position filename="src/meta/meta-monitor.h" line="30"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-monitor.c"
               line="2619">The displayable name of the monitor.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor.c"
                 line="2615">A #MetaMonitor object</doc>
            <type name="Monitor" c:type="MetaMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_product" c:identifier="meta_monitor_get_product">
        <doc xml:space="preserve"
             filename="src/backends/meta-monitor.c"
             line="589">Get the product name of the monitor.</doc>
        <source-position filename="src/meta/meta-monitor.h" line="39"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-monitor.c"
               line="595">The product name of the monitor.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor.c"
                 line="591">A #MetaMonitor object</doc>
            <type name="Monitor" c:type="MetaMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_serial" c:identifier="meta_monitor_get_serial">
        <doc xml:space="preserve"
             filename="src/backends/meta-monitor.c"
             line="609">Get the serial id of the monitor.</doc>
        <source-position filename="src/meta/meta-monitor.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-monitor.c"
               line="615">The serial id of the monitor.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor.c"
                 line="611">A #MetaMonitor object</doc>
            <type name="Monitor" c:type="MetaMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vendor" c:identifier="meta_monitor_get_vendor">
        <doc xml:space="preserve"
             filename="src/backends/meta-monitor.c"
             line="569">Get the vendor name of the monitor.</doc>
        <source-position filename="src/meta/meta-monitor.h" line="36"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-monitor.c"
               line="575">The vendor name of the monitor.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor.c"
                 line="571">A #MetaMonitor object</doc>
            <type name="Monitor" c:type="MetaMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_active" c:identifier="meta_monitor_is_active">
        <doc xml:space="preserve"
             filename="src/backends/meta-monitor.c"
             line="350">Returns whether the monitor is active.</doc>
        <source-position filename="src/meta/meta-monitor.h" line="27"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-monitor.c"
               line="356">%TRUE if the monitor is active, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor.c"
                 line="352">A #MetaMonitor object</doc>
            <type name="Monitor" c:type="MetaMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_builtin" c:identifier="meta_monitor_is_builtin">
        <doc xml:space="preserve"
             filename="src/backends/meta-monitor.c"
             line="435">Returns whether the monitor is a builtin monitor.</doc>
        <source-position filename="src/meta/meta-monitor.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-monitor.c"
               line="441">%TRUE if no monitors is a builtin monitor, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor.c"
                 line="437">A #MetaMonitor object</doc>
            <type name="Monitor" c:type="MetaMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_primary" c:identifier="meta_monitor_is_primary">
        <doc xml:space="preserve"
             filename="src/backends/meta-monitor.c"
             line="366">Returns whether the monitor is the primary monitor.</doc>
        <source-position filename="src/meta/meta-monitor.h" line="45"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-monitor.c"
               line="372">%TRUE if no monitors is the primary monitor, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor.c"
                 line="368">A #MetaMonitor object</doc>
            <type name="Monitor" c:type="MetaMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_virtual" c:identifier="meta_monitor_is_virtual">
        <doc xml:space="preserve"
             filename="src/backends/meta-monitor.c"
             line="455">Returns whether the monitor is virtual.</doc>
        <source-position filename="src/meta/meta-monitor.h" line="51"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-monitor.c"
               line="461">%TRUE if no monitors is virtual, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor.c"
                 line="457">A #MetaMonitor object</doc>
            <type name="Monitor" c:type="MetaMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="MonitorClass"
            c:type="MetaMonitorClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Monitor">
      <source-position filename="src/meta/meta-monitor.h" line="24"/>
    </record>
    <class name="MonitorManager"
           c:symbol-prefix="monitor_manager"
           c:type="MetaMonitorManager"
           parent="GObject.Object"
           glib:type-name="MetaMonitorManager"
           glib:get-type="meta_monitor_manager_get_type"
           glib:type-struct="MonitorManagerClass">
      <doc xml:space="preserve"
           filename="src/backends/meta-monitor-manager.c"
           line="27">A manager for multiple monitors

#MetaMonitorManager is an abstract class which contains methods to handle
multiple monitors (both #MetaMonitor and #MetaLogicalMonitor) and GPU's
(#MetaGpu). Its functions include reading and/or changing the current
configuration and available capabiliies.

The #MetaMonitorManager also provides the "org.gnome.Mutter.DisplayConfig"
DBus service, so apps like GNOME Settings can use this functionality.</doc>
      <source-position filename="src/meta/meta-monitor-manager.h" line="39"/>
      <method name="can_switch_config"
              c:identifier="meta_monitor_manager_can_switch_config">
        <source-position filename="src/meta/meta-monitor-manager.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_display_configuration_timeout"
              c:identifier="meta_monitor_manager_get_display_configuration_timeout">
        <source-position filename="src/meta/meta-monitor-manager.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_builtin_display_on"
              c:identifier="meta_monitor_manager_get_is_builtin_display_on">
        <doc xml:space="preserve"
             filename="src/backends/meta-monitor-manager.c"
             line="4461">Returns whether the built-in display (i.e. a laptop panel) is turned on.</doc>
        <source-position filename="src/meta/meta-monitor-manager.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor-manager.c"
                 line="4463">A #MetaMonitorManager object</doc>
            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_logical_monitors"
              c:identifier="meta_monitor_manager_get_logical_monitors">
        <doc xml:space="preserve"
             filename="src/backends/meta-monitor-manager.c"
             line="3685">Returns the list of [class@Meta.LogicalMonitor]s. See also
meta_monitor_manager_get_num_logical_monitors() if you only need the size of
the list.</doc>
        <source-position filename="src/meta/meta-monitor-manager.h" line="72"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/backends/meta-monitor-manager.c"
               line="3693">
The list of [class@Meta.LogicalMonitor]s.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="LogicalMonitor"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor-manager.c"
                 line="3687">A #MetaMonitorManager object</doc>
            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_monitor_for_connector"
              c:identifier="meta_monitor_manager_get_monitor_for_connector">
        <source-position filename="src/meta/meta-monitor-manager.h" line="46"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/backends/meta-monitor-manager.c"
               line="4437">The monitor index or -1 if @id isn't valid or the connector
isn't associated with a logical monitor.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor-manager.c"
                 line="4434">A #MetaMonitorManager</doc>
            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
          </instance-parameter>
          <parameter name="connector" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor-manager.c"
                 line="4435">A valid connector name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_monitors"
              c:identifier="meta_monitor_manager_get_monitors">
        <doc xml:space="preserve"
             filename="src/backends/meta-monitor-manager.c"
             line="3945">Returns the list of [class@Meta.Monitor]s. See also
meta_monitor_manager_get_logical_monitors() for a list of
`MetaLogicalMonitor`s.</doc>
        <source-position filename="src/meta/meta-monitor-manager.h" line="69"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/backends/meta-monitor-manager.c"
               line="3953">
The list of [class@Meta.Monitor]s.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Monitor"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor-manager.c"
                 line="3947">A #MetaMonitorManager object</doc>
            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_panel_orientation_managed"
              c:identifier="meta_monitor_manager_get_panel_orientation_managed"
              glib:get-property="panel-orientation-managed">
        <source-position filename="src/meta/meta-monitor-manager.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_switch_config"
              c:identifier="meta_monitor_manager_get_switch_config">
        <source-position filename="src/meta/meta-monitor-manager.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="MonitorSwitchConfigType"
                c:type="MetaMonitorSwitchConfigType"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="switch_config"
              c:identifier="meta_monitor_manager_switch_config">
        <source-position filename="src/meta/meta-monitor-manager.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="MonitorManager" c:type="MetaMonitorManager*"/>
          </instance-parameter>
          <parameter name="config_type" transfer-ownership="none">
            <type name="MonitorSwitchConfigType"
                  c:type="MetaMonitorSwitchConfigType"/>
          </parameter>
        </parameters>
      </method>
      <property name="backend"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Backend"/>
      </property>
      <property name="has-builtin-panel"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="night-light-supported"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="panel-orientation-managed"
                transfer-ownership="none"
                getter="get_panel_orientation_managed"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <glib:signal name="confirm-display-change" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="monitor-privacy-screen-changed"
                   when="last"
                   introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="logical_monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor-manager.c"
                 line="1752">The #MetaLogicalMonitor where the privacy screen state
                  changed</doc>
            <type name="LogicalMonitor"/>
          </parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-monitor-manager.c"
                 line="1754">%TRUE if the privacy screen was enabled, otherwise %FALSE</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="monitors-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="monitors-changed-internal" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="monitors-changing" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="power-save-mode-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="PowerSaveChangeReason"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="MonitorManagerClass"
            c:type="MetaMonitorManagerClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="MonitorManager">
      <source-position filename="src/meta/meta-monitor-manager.h" line="39"/>
    </record>
    <enumeration name="MonitorSwitchConfigType"
                 glib:type-name="MetaMonitorSwitchConfigType"
                 glib:get-type="meta_monitor_switch_config_type_get_type"
                 c:type="MetaMonitorSwitchConfigType">
      <member name="all_mirror"
              value="0"
              c:identifier="META_MONITOR_SWITCH_CONFIG_ALL_MIRROR"
              glib:nick="all-mirror"
              glib:name="META_MONITOR_SWITCH_CONFIG_ALL_MIRROR">
      </member>
      <member name="all_linear"
              value="1"
              c:identifier="META_MONITOR_SWITCH_CONFIG_ALL_LINEAR"
              glib:nick="all-linear"
              glib:name="META_MONITOR_SWITCH_CONFIG_ALL_LINEAR">
      </member>
      <member name="external"
              value="2"
              c:identifier="META_MONITOR_SWITCH_CONFIG_EXTERNAL"
              glib:nick="external"
              glib:name="META_MONITOR_SWITCH_CONFIG_EXTERNAL">
      </member>
      <member name="builtin"
              value="3"
              c:identifier="META_MONITOR_SWITCH_CONFIG_BUILTIN"
              glib:nick="builtin"
              glib:name="META_MONITOR_SWITCH_CONFIG_BUILTIN">
      </member>
      <member name="unknown"
              value="4"
              c:identifier="META_MONITOR_SWITCH_CONFIG_UNKNOWN"
              glib:nick="unknown"
              glib:name="META_MONITOR_SWITCH_CONFIG_UNKNOWN">
      </member>
    </enumeration>
    <enumeration name="MotionDirection"
                 glib:type-name="MetaMotionDirection"
                 glib:get-type="meta_motion_direction_get_type"
                 c:type="MetaMotionDirection">
      <member name="up"
              value="-1"
              c:identifier="META_MOTION_UP"
              glib:nick="up"
              glib:name="META_MOTION_UP">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="259">Upwards motion</doc>
      </member>
      <member name="down"
              value="-2"
              c:identifier="META_MOTION_DOWN"
              glib:nick="down"
              glib:name="META_MOTION_DOWN">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="260">Downwards motion</doc>
      </member>
      <member name="left"
              value="-3"
              c:identifier="META_MOTION_LEFT"
              glib:nick="left"
              glib:name="META_MOTION_LEFT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="261">Motion to the left</doc>
      </member>
      <member name="right"
              value="-4"
              c:identifier="META_MOTION_RIGHT"
              glib:nick="right"
              glib:name="META_MOTION_RIGHT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="262">Motion to the right</doc>
      </member>
      <member name="up_left"
              value="-5"
              c:identifier="META_MOTION_UP_LEFT"
              glib:nick="up-left"
              glib:name="META_MOTION_UP_LEFT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="263">Motion up and to the left</doc>
      </member>
      <member name="up_right"
              value="-6"
              c:identifier="META_MOTION_UP_RIGHT"
              glib:nick="up-right"
              glib:name="META_MOTION_UP_RIGHT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="264">Motion up and to the right</doc>
      </member>
      <member name="down_left"
              value="-7"
              c:identifier="META_MOTION_DOWN_LEFT"
              glib:nick="down-left"
              glib:name="META_MOTION_DOWN_LEFT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="265">Motion down and to the left</doc>
      </member>
      <member name="down_right"
              value="-8"
              c:identifier="META_MOTION_DOWN_RIGHT"
              glib:nick="down-right"
              glib:name="META_MOTION_DOWN_RIGHT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="266">Motion down and to the right</doc>
      </member>
    </enumeration>
    <class name="MultiTexture"
           c:symbol-prefix="multi_texture"
           c:type="MetaMultiTexture"
           parent="GObject.Object"
           glib:type-name="MetaMultiTexture"
           glib:get-type="meta_multi_texture_get_type"
           glib:type-struct="MultiTextureClass">
      <doc xml:space="preserve"
           filename="src/compositor/meta-multi-texture.c"
           line="20">A texture that can have multiple planes.

#MetaMultiTexture allows one to deal with non-trivial formats that
have multiple planes, requires subsampling and/or aren't in RGB. A common
example of this are decoded video frames, which often use something in the
YUV colorspace, combined with subsampling.

The basic idea of a #MetaMultiTexture is the following:
- Each plane is represented by a separate #CoglTexture. That means that you
  should add each of these planes as a layer to your CoglPipeline.
- When dealing with a color space that is not RGB, you can ask the
  #MetaMultiTexture to create a shader for you that does the conversion
  in the GPU.
- In case you need to deal with memory access in a format with subsampling,
  you can use meta_multi_texture_get_width() and its analogous version
  for the height to get the correct size of the texture.</doc>
      <source-position filename="src/meta/meta-multi-texture.h" line="32"/>
      <constructor name="new" c:identifier="meta_multi_texture_new">
        <doc xml:space="preserve"
             filename="src/compositor/meta-multi-texture.c"
             line="195">Creates a #MetaMultiTexture with the given @format. Each of the
`CoglTexture`s represents a plane.</doc>
        <source-position filename="src/meta/meta-multi-texture.h" line="39"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/compositor/meta-multi-texture.c"
               line="204">A new #MetaMultiTexture. Use g_object_unref() when
you're done with it.</doc>
          <type name="MultiTexture" c:type="MetaMultiTexture*"/>
        </return-value>
        <parameters>
          <parameter name="format" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-multi-texture.c"
                 line="197">The format of the #MetaMultiTexture</doc>
            <type name="MultiTextureFormat" c:type="MetaMultiTextureFormat"/>
          </parameter>
          <parameter name="planes" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-multi-texture.c"
                 line="198">The actual planes of the texture</doc>
            <type name="Cogl.Texture" c:type="CoglTexture**"/>
          </parameter>
          <parameter name="n_planes" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-multi-texture.c"
                 line="199">The number of planes</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_simple"
                   c:identifier="meta_multi_texture_new_simple">
        <doc xml:space="preserve"
             filename="src/compositor/meta-multi-texture.c"
             line="225">Creates a #MetaMultiTexture for a "simple" texture, i.e. with only one
plane, in a format that can be represented using #CoglPixelFormat.</doc>
        <source-position filename="src/meta/meta-multi-texture.h" line="44"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/compositor/meta-multi-texture.c"
               line="232">A new #MetaMultiTexture. Use g_object_unref() when
you're done with it.</doc>
          <type name="MultiTexture" c:type="MetaMultiTexture*"/>
        </return-value>
        <parameters>
          <parameter name="plane" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-multi-texture.c"
                 line="227">The single plane of the texture</doc>
            <type name="Cogl.Texture" c:type="CoglTexture*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add_pipeline_sampling"
              c:identifier="meta_multi_texture_add_pipeline_sampling">
        <source-position filename="src/meta/meta-multi-texture.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="multi_texture" transfer-ownership="none">
            <type name="MultiTexture" c:type="MetaMultiTexture*"/>
          </instance-parameter>
          <parameter name="coeffs" transfer-ownership="none">
            <type name="MultiTextureCoefficients"
                  c:type="MetaMultiTextureCoefficients"/>
          </parameter>
          <parameter name="premult" transfer-ownership="none">
            <type name="MultiTextureAlphaMode"
                  c:type="MetaMultiTextureAlphaMode"/>
          </parameter>
          <parameter name="pipeline" transfer-ownership="none">
            <type name="Cogl.Pipeline" c:type="CoglPipeline*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_format" c:identifier="meta_multi_texture_get_format">
        <doc xml:space="preserve"
             filename="src/compositor/meta-multi-texture.c"
             line="60">Returns the #MetaMultiTextureFormat that is used by this texture.</doc>
        <source-position filename="src/meta/meta-multi-texture.h" line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-multi-texture.c"
               line="66">The texture format that is used by this #MetaMultiTexture.</doc>
          <type name="MultiTextureFormat" c:type="MetaMultiTextureFormat"/>
        </return-value>
        <parameters>
          <instance-parameter name="multi_texture" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-multi-texture.c"
                 line="62">a #MetaMultiTexture</doc>
            <type name="MultiTexture" c:type="MetaMultiTexture*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_height" c:identifier="meta_multi_texture_get_height">
        <doc xml:space="preserve"
             filename="src/compositor/meta-multi-texture.c"
             line="150">Returns the height of the #MetaMultiTexture. Prefer this over calling
cogl_texture_get_height() on one of the textures, as that might give a
different size when dealing with subsampling.</doc>
        <source-position filename="src/meta/meta-multi-texture.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-multi-texture.c"
               line="158">The height of the texture.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="multi_texture" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-multi-texture.c"
                 line="152">a #MetaMultiTexture</doc>
            <type name="MultiTexture" c:type="MetaMultiTexture*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_planes"
              c:identifier="meta_multi_texture_get_n_planes">
        <doc xml:space="preserve"
             filename="src/compositor/meta-multi-texture.c"
             line="93">Returns the number of planes for this texture. Note that this is entirely
dependent on the #CoglPixelFormat that is used. For example, simple RGB
textures will have a single plane, while some more convoluted formats like
NV12 and YUV 4:4:4 can have 2 and 3 planes respectively.</doc>
        <source-position filename="src/meta/meta-multi-texture.h" line="53"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-multi-texture.c"
               line="102">The number of planes in this #MetaMultiTexture.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="multi_texture" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-multi-texture.c"
                 line="95">a #MetaMultiTexture</doc>
            <type name="MultiTexture" c:type="MetaMultiTexture*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_plane" c:identifier="meta_multi_texture_get_plane">
        <doc xml:space="preserve"
             filename="src/compositor/meta-multi-texture.c"
             line="112">Returns the n'th plane of the #MetaMultiTexture. Note that it's a programming
error to use with an index larger than meta_multi_texture_get_n_planes().</doc>
        <source-position filename="src/meta/meta-multi-texture.h" line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-multi-texture.c"
               line="120">The plane at the given @index.</doc>
          <type name="Cogl.Texture" c:type="CoglTexture*"/>
        </return-value>
        <parameters>
          <instance-parameter name="multi_texture" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-multi-texture.c"
                 line="114">a #MetaMultiTexture</doc>
            <type name="MultiTexture" c:type="MetaMultiTexture*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-multi-texture.c"
                 line="115">the index of the plane</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_width" c:identifier="meta_multi_texture_get_width">
        <doc xml:space="preserve"
             filename="src/compositor/meta-multi-texture.c"
             line="132">Returns the width of the #MetaMultiTexture. Prefer this over calling
cogl_texture_get_width() on one of the textures, as that might give a
different size when dealing with subsampling.</doc>
        <source-position filename="src/meta/meta-multi-texture.h" line="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-multi-texture.c"
               line="140">The width of the texture.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="multi_texture" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-multi-texture.c"
                 line="134">a #MetaMultiTexture</doc>
            <type name="MultiTexture" c:type="MetaMultiTexture*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_simple" c:identifier="meta_multi_texture_is_simple">
        <doc xml:space="preserve"
             filename="src/compositor/meta-multi-texture.c"
             line="76">A small function that checks whether the given multi texture uses a "simple"
format, i.e. one that can be represented by a #CoglPixelFormat.</doc>
        <source-position filename="src/meta/meta-multi-texture.h" line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-multi-texture.c"
               line="83">Whether the texture format is #META_MULTI_TEXTURE_FORMAT_SIMPLE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="multi_texture" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-multi-texture.c"
                 line="78">a #MetaMultiTexture</doc>
            <type name="MultiTexture" c:type="MetaMultiTexture*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_string" c:identifier="meta_multi_texture_to_string">
        <doc xml:space="preserve"
             filename="src/compositor/meta-multi-texture.c"
             line="251">Returns a string representation of @multi_texture, useful for debugging
purposes.</doc>
        <source-position filename="src/meta/meta-multi-texture.h" line="66"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/compositor/meta-multi-texture.c"
               line="258">A string representation of @multi_texture. Use
g_free() when done with it.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="multi_texture" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-multi-texture.c"
                 line="253">a #MetaMultiTexture</doc>
            <type name="MultiTexture" c:type="MetaMultiTexture*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <enumeration name="MultiTextureAlphaMode"
                 glib:type-name="MetaMultiTextureAlphaMode"
                 glib:get-type="meta_multi_texture_alpha_mode_get_type"
                 c:type="MetaMultiTextureAlphaMode">
      <member name="meta_multi_texture_alpha_mode_none"
              value="0"
              c:identifier="META_MULTI_TEXTURE_ALPHA_MODE_NONE"
              glib:nick="meta-multi-texture-alpha-mode-none"
              glib:name="META_MULTI_TEXTURE_ALPHA_MODE_NONE">
      </member>
      <member name="meta_multi_texture_alpha_mode_premult_electrical"
              value="1"
              c:identifier="META_MULTI_TEXTURE_ALPHA_MODE_PREMULT_ELECTRICAL"
              glib:nick="meta-multi-texture-alpha-mode-premult-electrical"
              glib:name="META_MULTI_TEXTURE_ALPHA_MODE_PREMULT_ELECTRICAL">
      </member>
      <member name="meta_multi_texture_alpha_mode_straight"
              value="2"
              c:identifier="META_MULTI_TEXTURE_ALPHA_MODE_STRAIGHT"
              glib:nick="meta-multi-texture-alpha-mode-straight"
              glib:name="META_MULTI_TEXTURE_ALPHA_MODE_STRAIGHT">
      </member>
      <member name="n_meta_multi_texture_alpha_modes"
              value="3"
              c:identifier="N_META_MULTI_TEXTURE_ALPHA_MODES"
              glib:nick="n-meta-multi-texture-alpha-modes"
              glib:name="N_META_MULTI_TEXTURE_ALPHA_MODES">
      </member>
    </enumeration>
    <enumeration name="MultiTextureChromaLoc"
                 glib:type-name="MetaMultiTextureChromaLoc"
                 glib:get-type="meta_multi_texture_chroma_loc_get_type"
                 c:type="MetaMultiTextureChromaLoc">
      <member name="none"
              value="0"
              c:identifier="META_MULTI_TEXTURE_CHROMA_LOC_NONE"
              glib:nick="none"
              glib:name="META_MULTI_TEXTURE_CHROMA_LOC_NONE">
      </member>
      <member name="defined"
              value="1"
              c:identifier="META_MULTI_TEXTURE_CHROMA_LOC_DEFINED"
              glib:nick="defined"
              glib:name="META_MULTI_TEXTURE_CHROMA_LOC_DEFINED">
      </member>
    </enumeration>
    <record name="MultiTextureClass"
            c:type="MetaMultiTextureClass"
            glib:is-gtype-struct-for="MultiTexture">
      <source-position filename="src/meta/meta-multi-texture.h" line="32"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="MultiTextureCoefficients"
                 glib:type-name="MetaMultiTextureCoefficients"
                 glib:get-type="meta_multi_texture_coefficients_get_type"
                 c:type="MetaMultiTextureCoefficients">
      <member name="meta_multi_texture_coefficients_none"
              value="0"
              c:identifier="META_MULTI_TEXTURE_COEFFICIENTS_NONE"
              glib:nick="meta-multi-texture-coefficients-none"
              glib:name="META_MULTI_TEXTURE_COEFFICIENTS_NONE">
      </member>
      <member name="meta_multi_texture_coefficients_identity_full"
              value="1"
              c:identifier="META_MULTI_TEXTURE_COEFFICIENTS_IDENTITY_FULL"
              glib:nick="meta-multi-texture-coefficients-identity-full"
              glib:name="META_MULTI_TEXTURE_COEFFICIENTS_IDENTITY_FULL">
      </member>
      <member name="meta_multi_texture_coefficients_identity_limited"
              value="2"
              c:identifier="META_MULTI_TEXTURE_COEFFICIENTS_IDENTITY_LIMITED"
              glib:nick="meta-multi-texture-coefficients-identity-limited"
              glib:name="META_MULTI_TEXTURE_COEFFICIENTS_IDENTITY_LIMITED">
      </member>
      <member name="meta_multi_texture_coefficients_bt709_full"
              value="3"
              c:identifier="META_MULTI_TEXTURE_COEFFICIENTS_BT709_FULL"
              glib:nick="meta-multi-texture-coefficients-bt709-full"
              glib:name="META_MULTI_TEXTURE_COEFFICIENTS_BT709_FULL">
      </member>
      <member name="meta_multi_texture_coefficients_bt709_limited"
              value="4"
              c:identifier="META_MULTI_TEXTURE_COEFFICIENTS_BT709_LIMITED"
              glib:nick="meta-multi-texture-coefficients-bt709-limited"
              glib:name="META_MULTI_TEXTURE_COEFFICIENTS_BT709_LIMITED">
      </member>
      <member name="meta_multi_texture_coefficients_bt601_full"
              value="5"
              c:identifier="META_MULTI_TEXTURE_COEFFICIENTS_BT601_FULL"
              glib:nick="meta-multi-texture-coefficients-bt601-full"
              glib:name="META_MULTI_TEXTURE_COEFFICIENTS_BT601_FULL">
      </member>
      <member name="meta_multi_texture_coefficients_bt601_limited"
              value="6"
              c:identifier="META_MULTI_TEXTURE_COEFFICIENTS_BT601_LIMITED"
              glib:nick="meta-multi-texture-coefficients-bt601-limited"
              glib:name="META_MULTI_TEXTURE_COEFFICIENTS_BT601_LIMITED">
      </member>
      <member name="meta_multi_texture_coefficients_bt2020_full"
              value="7"
              c:identifier="META_MULTI_TEXTURE_COEFFICIENTS_BT2020_FULL"
              glib:nick="meta-multi-texture-coefficients-bt2020-full"
              glib:name="META_MULTI_TEXTURE_COEFFICIENTS_BT2020_FULL">
      </member>
      <member name="meta_multi_texture_coefficients_bt2020_limited"
              value="8"
              c:identifier="META_MULTI_TEXTURE_COEFFICIENTS_BT2020_LIMITED"
              glib:nick="meta-multi-texture-coefficients-bt2020-limited"
              glib:name="META_MULTI_TEXTURE_COEFFICIENTS_BT2020_LIMITED">
      </member>
      <member name="n_meta_multi_texture_coefficients"
              value="9"
              c:identifier="N_META_MULTI_TEXTURE_COEFFICIENTS"
              glib:nick="n-meta-multi-texture-coefficients"
              glib:name="N_META_MULTI_TEXTURE_COEFFICIENTS">
      </member>
    </enumeration>
    <enumeration name="MultiTextureFormat"
                 glib:type-name="MetaMultiTextureFormat"
                 glib:get-type="meta_multi_texture_format_get_type"
                 c:type="MetaMultiTextureFormat">
      <doc xml:space="preserve"
           filename="src/meta/meta-multi-texture-format.h"
           line="26">A representation for complex pixel formats

Some pixel formats that are used in the wild are a bit more complex than
just ARGB and all its variants. For example: a component might be put in a
different plane (i.e. at a different place in memory). Another example are
formats that use Y, U, and V components rather than RGB; if we composite them
onto an RGBA framebuffer, we have to make sure for example that these get
converted to the right color format first (using e.g. a shader).</doc>
      <member name="meta_multi_texture_format_invalid"
              value="0"
              c:identifier="META_MULTI_TEXTURE_FORMAT_INVALID"
              glib:nick="meta-multi-texture-format-invalid"
              glib:name="META_MULTI_TEXTURE_FORMAT_INVALID">
        <doc xml:space="preserve"
             filename="src/meta/meta-multi-texture-format.h"
             line="28">Invalid value</doc>
      </member>
      <member name="meta_multi_texture_format_simple"
              value="1"
              c:identifier="META_MULTI_TEXTURE_FORMAT_SIMPLE"
              glib:nick="meta-multi-texture-format-simple"
              glib:name="META_MULTI_TEXTURE_FORMAT_SIMPLE">
        <doc xml:space="preserve"
             filename="src/meta/meta-multi-texture-format.h"
             line="29">Any format supported by Cogl (see #CoglPixelFormat)</doc>
      </member>
      <member name="meta_multi_texture_format_yuyv"
              value="2"
              c:identifier="META_MULTI_TEXTURE_FORMAT_YUYV"
              glib:nick="meta-multi-texture-format-yuyv"
              glib:name="META_MULTI_TEXTURE_FORMAT_YUYV">
        <doc xml:space="preserve"
             filename="src/meta/meta-multi-texture-format.h"
             line="30">YUYV, 32 bits, 16 bpc (Y), 8 bpc (U &amp; V)</doc>
      </member>
      <member name="meta_multi_texture_format_yvyu"
              value="3"
              c:identifier="META_MULTI_TEXTURE_FORMAT_YVYU"
              glib:nick="meta-multi-texture-format-yvyu"
              glib:name="META_MULTI_TEXTURE_FORMAT_YVYU">
      </member>
      <member name="meta_multi_texture_format_uyvy"
              value="4"
              c:identifier="META_MULTI_TEXTURE_FORMAT_UYVY"
              glib:nick="meta-multi-texture-format-uyvy"
              glib:name="META_MULTI_TEXTURE_FORMAT_UYVY">
      </member>
      <member name="meta_multi_texture_format_vyuy"
              value="5"
              c:identifier="META_MULTI_TEXTURE_FORMAT_VYUY"
              glib:nick="meta-multi-texture-format-vyuy"
              glib:name="META_MULTI_TEXTURE_FORMAT_VYUY">
      </member>
      <member name="meta_multi_texture_format_nv12"
              value="6"
              c:identifier="META_MULTI_TEXTURE_FORMAT_NV12"
              glib:nick="meta-multi-texture-format-nv12"
              glib:name="META_MULTI_TEXTURE_FORMAT_NV12">
        <doc xml:space="preserve"
             filename="src/meta/meta-multi-texture-format.h"
             line="31">2 planes: 1 Y-plane, 1 UV-plane (2x2 subsampled)</doc>
      </member>
      <member name="meta_multi_texture_format_nv21"
              value="7"
              c:identifier="META_MULTI_TEXTURE_FORMAT_NV21"
              glib:nick="meta-multi-texture-format-nv21"
              glib:name="META_MULTI_TEXTURE_FORMAT_NV21">
      </member>
      <member name="meta_multi_texture_format_nv16"
              value="8"
              c:identifier="META_MULTI_TEXTURE_FORMAT_NV16"
              glib:nick="meta-multi-texture-format-nv16"
              glib:name="META_MULTI_TEXTURE_FORMAT_NV16">
      </member>
      <member name="meta_multi_texture_format_nv61"
              value="9"
              c:identifier="META_MULTI_TEXTURE_FORMAT_NV61"
              glib:nick="meta-multi-texture-format-nv61"
              glib:name="META_MULTI_TEXTURE_FORMAT_NV61">
      </member>
      <member name="meta_multi_texture_format_nv24"
              value="10"
              c:identifier="META_MULTI_TEXTURE_FORMAT_NV24"
              glib:nick="meta-multi-texture-format-nv24"
              glib:name="META_MULTI_TEXTURE_FORMAT_NV24">
      </member>
      <member name="meta_multi_texture_format_nv42"
              value="11"
              c:identifier="META_MULTI_TEXTURE_FORMAT_NV42"
              glib:nick="meta-multi-texture-format-nv42"
              glib:name="META_MULTI_TEXTURE_FORMAT_NV42">
      </member>
      <member name="meta_multi_texture_format_p010"
              value="12"
              c:identifier="META_MULTI_TEXTURE_FORMAT_P010"
              glib:nick="meta-multi-texture-format-p010"
              glib:name="META_MULTI_TEXTURE_FORMAT_P010">
      </member>
      <member name="meta_multi_texture_format_p012"
              value="13"
              c:identifier="META_MULTI_TEXTURE_FORMAT_P012"
              glib:nick="meta-multi-texture-format-p012"
              glib:name="META_MULTI_TEXTURE_FORMAT_P012">
      </member>
      <member name="meta_multi_texture_format_p016"
              value="14"
              c:identifier="META_MULTI_TEXTURE_FORMAT_P016"
              glib:nick="meta-multi-texture-format-p016"
              glib:name="META_MULTI_TEXTURE_FORMAT_P016">
      </member>
      <member name="meta_multi_texture_format_yuv420"
              value="15"
              c:identifier="META_MULTI_TEXTURE_FORMAT_YUV420"
              glib:nick="meta-multi-texture-format-yuv420"
              glib:name="META_MULTI_TEXTURE_FORMAT_YUV420">
        <doc xml:space="preserve"
             filename="src/meta/meta-multi-texture-format.h"
             line="32">3 planes: 1 Y-plane, 1 U-plane (2x2 subsampled), 1 V-plane (2x2 subsampled)</doc>
      </member>
      <member name="meta_multi_texture_format_yvu420"
              value="16"
              c:identifier="META_MULTI_TEXTURE_FORMAT_YVU420"
              glib:nick="meta-multi-texture-format-yvu420"
              glib:name="META_MULTI_TEXTURE_FORMAT_YVU420">
      </member>
      <member name="meta_multi_texture_format_yuv422"
              value="17"
              c:identifier="META_MULTI_TEXTURE_FORMAT_YUV422"
              glib:nick="meta-multi-texture-format-yuv422"
              glib:name="META_MULTI_TEXTURE_FORMAT_YUV422">
      </member>
      <member name="meta_multi_texture_format_yvu422"
              value="18"
              c:identifier="META_MULTI_TEXTURE_FORMAT_YVU422"
              glib:nick="meta-multi-texture-format-yvu422"
              glib:name="META_MULTI_TEXTURE_FORMAT_YVU422">
      </member>
      <member name="meta_multi_texture_format_yuv444"
              value="19"
              c:identifier="META_MULTI_TEXTURE_FORMAT_YUV444"
              glib:nick="meta-multi-texture-format-yuv444"
              glib:name="META_MULTI_TEXTURE_FORMAT_YUV444">
      </member>
      <member name="meta_multi_texture_format_yvu444"
              value="20"
              c:identifier="META_MULTI_TEXTURE_FORMAT_YVU444"
              glib:nick="meta-multi-texture-format-yvu444"
              glib:name="META_MULTI_TEXTURE_FORMAT_YVU444">
      </member>
      <member name="meta_multi_texture_format_s010"
              value="21"
              c:identifier="META_MULTI_TEXTURE_FORMAT_S010"
              glib:nick="meta-multi-texture-format-s010"
              glib:name="META_MULTI_TEXTURE_FORMAT_S010">
      </member>
      <member name="meta_multi_texture_format_s210"
              value="22"
              c:identifier="META_MULTI_TEXTURE_FORMAT_S210"
              glib:nick="meta-multi-texture-format-s210"
              glib:name="META_MULTI_TEXTURE_FORMAT_S210">
      </member>
      <member name="meta_multi_texture_format_s410"
              value="23"
              c:identifier="META_MULTI_TEXTURE_FORMAT_S410"
              glib:nick="meta-multi-texture-format-s410"
              glib:name="META_MULTI_TEXTURE_FORMAT_S410">
      </member>
      <member name="meta_multi_texture_format_s012"
              value="24"
              c:identifier="META_MULTI_TEXTURE_FORMAT_S012"
              glib:nick="meta-multi-texture-format-s012"
              glib:name="META_MULTI_TEXTURE_FORMAT_S012">
      </member>
      <member name="meta_multi_texture_format_s212"
              value="25"
              c:identifier="META_MULTI_TEXTURE_FORMAT_S212"
              glib:nick="meta-multi-texture-format-s212"
              glib:name="META_MULTI_TEXTURE_FORMAT_S212">
      </member>
      <member name="meta_multi_texture_format_s412"
              value="26"
              c:identifier="META_MULTI_TEXTURE_FORMAT_S412"
              glib:nick="meta-multi-texture-format-s412"
              glib:name="META_MULTI_TEXTURE_FORMAT_S412">
      </member>
      <member name="meta_multi_texture_format_s016"
              value="27"
              c:identifier="META_MULTI_TEXTURE_FORMAT_S016"
              glib:nick="meta-multi-texture-format-s016"
              glib:name="META_MULTI_TEXTURE_FORMAT_S016">
      </member>
      <member name="meta_multi_texture_format_s216"
              value="28"
              c:identifier="META_MULTI_TEXTURE_FORMAT_S216"
              glib:nick="meta-multi-texture-format-s216"
              glib:name="META_MULTI_TEXTURE_FORMAT_S216">
      </member>
      <member name="meta_multi_texture_format_s416"
              value="29"
              c:identifier="META_MULTI_TEXTURE_FORMAT_S416"
              glib:nick="meta-multi-texture-format-s416"
              glib:name="META_MULTI_TEXTURE_FORMAT_S416">
      </member>
      <member name="n_meta_multi_texture_formats"
              value="30"
              c:identifier="N_META_MULTI_TEXTURE_FORMATS"
              glib:nick="n-meta-multi-texture-formats"
              glib:name="N_META_MULTI_TEXTURE_FORMATS">
      </member>
    </enumeration>
    <constant name="N_ORIENTATIONS" value="5" c:type="META_N_ORIENTATIONS">
      <source-position filename="src/meta/meta-orientation-manager.h"
                       line="35"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <enumeration name="Orientation"
                 glib:type-name="MetaOrientation"
                 glib:get-type="meta_orientation_get_type"
                 c:type="MetaOrientation">
      <member name="undefined"
              value="0"
              c:identifier="META_ORIENTATION_UNDEFINED"
              glib:nick="undefined"
              glib:name="META_ORIENTATION_UNDEFINED">
      </member>
      <member name="normal"
              value="1"
              c:identifier="META_ORIENTATION_NORMAL"
              glib:nick="normal"
              glib:name="META_ORIENTATION_NORMAL">
      </member>
      <member name="bottom_up"
              value="2"
              c:identifier="META_ORIENTATION_BOTTOM_UP"
              glib:nick="bottom-up"
              glib:name="META_ORIENTATION_BOTTOM_UP">
      </member>
      <member name="left_up"
              value="3"
              c:identifier="META_ORIENTATION_LEFT_UP"
              glib:nick="left-up"
              glib:name="META_ORIENTATION_LEFT_UP">
      </member>
      <member name="right_up"
              value="4"
              c:identifier="META_ORIENTATION_RIGHT_UP"
              glib:nick="right-up"
              glib:name="META_ORIENTATION_RIGHT_UP">
      </member>
      <function name="to_transform"
                c:identifier="meta_orientation_to_transform">
        <source-position filename="src/meta/meta-orientation-manager.h"
                         line="53"/>
        <return-value transfer-ownership="none">
          <type name="Mtk.MonitorTransform" c:type="MtkMonitorTransform"/>
        </return-value>
        <parameters>
          <parameter name="orientation" transfer-ownership="none">
            <type name="Orientation" c:type="MetaOrientation"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <class name="OrientationManager"
           c:symbol-prefix="orientation_manager"
           c:type="MetaOrientationManager"
           parent="GObject.Object"
           glib:type-name="MetaOrientationManager"
           glib:get-type="meta_orientation_manager_get_type"
           glib:type-struct="OrientationManagerClass">
      <doc xml:space="preserve"
           filename="src/backends/meta-orientation-manager.c"
           line="20">A screen orientation manager

#MetaOrientationManager is a final class which contains methods to
read the current screen orientation, as well as a signal that is
triggered whenever a screen changes its orientation.</doc>
      <source-position filename="src/meta/meta-orientation-manager.h"
                       line="40"/>
      <method name="get_orientation"
              c:identifier="meta_orientation_manager_get_orientation">
        <source-position filename="src/meta/meta-orientation-manager.h"
                         line="47"/>
        <return-value transfer-ownership="none">
          <type name="Orientation" c:type="MetaOrientation"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="OrientationManager" c:type="MetaOrientationManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_accelerometer"
              c:identifier="meta_orientation_manager_has_accelerometer"
              glib:get-property="has-accelerometer">
        <source-position filename="src/meta/meta-orientation-manager.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="OrientationManager" c:type="MetaOrientationManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="inhibit_tracking"
              c:identifier="meta_orientation_manager_inhibit_tracking">
        <source-position filename="src/meta/meta-orientation-manager.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="OrientationManager" c:type="MetaOrientationManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="uninhibit_tracking"
              c:identifier="meta_orientation_manager_uninhibit_tracking">
        <source-position filename="src/meta/meta-orientation-manager.h"
                         line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="OrientationManager" c:type="MetaOrientationManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="has-accelerometer"
                transfer-ownership="none"
                getter="has_accelerometer"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <glib:signal name="orientation-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="sensor-active" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="OrientationManagerClass"
            c:type="MetaOrientationManagerClass"
            glib:is-gtype-struct-for="OrientationManager">
      <source-position filename="src/meta/meta-orientation-manager.h"
                       line="40"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <function-macro name="PLUGIN_DECLARE"
                    c:identifier="META_PLUGIN_DECLARE"
                    introspectable="0">
      <source-position filename="src/meta/meta-plugin.h" line="269"/>
      <parameters>
        <parameter name="ObjectName">
        </parameter>
        <parameter name="object_name">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PLUGIN_DECLARE_WITH_CODE"
                    c:identifier="META_PLUGIN_DECLARE_WITH_CODE"
                    introspectable="0">
      <source-position filename="src/meta/meta-plugin.h" line="246"/>
      <parameters>
        <parameter name="ObjectName">
        </parameter>
        <parameter name="object_name">
        </parameter>
        <parameter name="CODE">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="PRIORITY_BEFORE_REDRAW"
              value="40"
              c:type="META_PRIORITY_BEFORE_REDRAW">
      <source-position filename="src/meta/common.h" line="141"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="PRIORITY_PREFS_NOTIFY"
              value="10"
              c:type="META_PRIORITY_PREFS_NOTIFY">
      <source-position filename="src/meta/common.h" line="155"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="PRIORITY_REDRAW" value="50" c:type="META_PRIORITY_REDRAW">
      <source-position filename="src/meta/common.h" line="147"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="PRIORITY_RESIZE" value="15" c:type="META_PRIORITY_RESIZE">
      <source-position filename="src/meta/common.h" line="138"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <enumeration name="PadDirection"
                 glib:type-name="MetaPadDirection"
                 glib:get-type="meta_pad_direction_get_type"
                 c:type="MetaPadDirection">
      <member name="up"
              value="1"
              c:identifier="META_PAD_DIRECTION_UP"
              glib:nick="up"
              glib:name="META_PAD_DIRECTION_UP">
      </member>
      <member name="down"
              value="2"
              c:identifier="META_PAD_DIRECTION_DOWN"
              glib:nick="down"
              glib:name="META_PAD_DIRECTION_DOWN">
      </member>
      <member name="cw"
              value="3"
              c:identifier="META_PAD_DIRECTION_CW"
              glib:nick="cw"
              glib:name="META_PAD_DIRECTION_CW">
      </member>
      <member name="ccw"
              value="4"
              c:identifier="META_PAD_DIRECTION_CCW"
              glib:nick="ccw"
              glib:name="META_PAD_DIRECTION_CCW">
      </member>
    </enumeration>
    <enumeration name="PadFeatureType"
                 glib:type-name="MetaPadFeatureType"
                 glib:get-type="meta_pad_feature_type_get_type"
                 c:type="MetaPadFeatureType">
      <member name="ring"
              value="0"
              c:identifier="META_PAD_FEATURE_RING"
              glib:nick="ring"
              glib:name="META_PAD_FEATURE_RING">
      </member>
      <member name="strip"
              value="1"
              c:identifier="META_PAD_FEATURE_STRIP"
              glib:nick="strip"
              glib:name="META_PAD_FEATURE_STRIP">
      </member>
      <member name="dial"
              value="2"
              c:identifier="META_PAD_FEATURE_DIAL"
              glib:nick="dial"
              glib:name="META_PAD_FEATURE_DIAL">
      </member>
    </enumeration>
    <class name="Plugin"
           c:symbol-prefix="plugin"
           c:type="MetaPlugin"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="MetaPlugin"
           glib:get-type="meta_plugin_get_type"
           glib:type-struct="PluginClass">
      <doc xml:space="preserve"
           filename="src/compositor/meta-plugin.c"
           line="22">Entry point for plugins</doc>
      <source-position filename="src/meta/meta-plugin.h" line="241"/>
      <function name="manager_set_plugin_type"
                c:identifier="meta_plugin_manager_set_plugin_type">
        <source-position filename="src/meta/meta-plugin.h" line="313"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="gtype" transfer-ownership="none">
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="confirm_display_change">
        <source-position filename="src/meta/meta-plugin.h" line="204"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_close_dialog">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="206">Virtual function called to create a "force quit" dialog
on non-responsive clients.</doc>
        <source-position filename="src/meta/meta-plugin.h" line="216"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/meta/meta-plugin.h"
               line="214">a #MetaCloseDialog</doc>
          <type name="CloseDialog" c:type="MetaCloseDialog*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="208">a #MetaPlugin</doc>
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="209">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="create_inhibit_shortcuts_dialog">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="219">Virtual function called to create a "inhibit shortcuts" dialog
when a client requests compositor shortcuts to be inhibited.</doc>
        <source-position filename="src/meta/meta-plugin.h" line="229"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/meta/meta-plugin.h"
               line="227">a #MetaInhibitShortcutsDialog</doc>
          <type name="InhibitShortcutsDialog"
                c:type="MetaInhibitShortcutsDialog*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="221">a #MetaPlugin</doc>
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="222">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="destroy">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="108">Virtual function called when the window represented by @actor is destroyed.</doc>
        <source-position filename="src/meta/meta-plugin.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="110">a #MetaWindowActor</doc>
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="hide_tile_preview">
        <source-position filename="src/meta/meta-plugin.h" line="134"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="keybinding_filter">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="180">Virtual function called when handling each keybinding.</doc>
        <source-position filename="src/meta/meta-plugin.h" line="188"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/meta/meta-plugin.h"
               line="186">%TRUE if the plugin handled the keybinding.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="binding" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="182">a #MetaKeyBinding</doc>
            <type name="KeyBinding" c:type="MetaKeyBinding*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="kill_switch_workspace">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="158">Virtual function called when the workspace-switching effect needs to be
killed prematurely.</doc>
        <source-position filename="src/meta/meta-plugin.h" line="164"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="kill_window_effects">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="147">Virtual function called when the effects on @actor need to be killed
prematurely; the plugin must call the completed() callback as if the effect
terminated naturally.</doc>
        <source-position filename="src/meta/meta-plugin.h" line="155"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="149">a #MetaWindowActor</doc>
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="locate_pointer">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="232">Virtual function called when the user triggered the "locate-pointer"
mechanism.
The common way to implement this function is to show some animation
on screen to draw user attention on the pointer location.</doc>
        <source-position filename="src/meta/meta-plugin.h" line="240"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="map">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="99">Virtual function called when the window represented by @actor is mapped.</doc>
        <source-position filename="src/meta/meta-plugin.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="101">a #MetaWindowActor</doc>
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="minimize">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="72">Virtual function called when the window represented by @actor is minimized.</doc>
        <source-position filename="src/meta/meta-plugin.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="74">a #MetaWindowActor</doc>
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show_tile_preview">
        <source-position filename="src/meta/meta-plugin.h" line="130"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
          <parameter name="tile_rect" transfer-ownership="none">
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
          <parameter name="tile_monitor_number" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show_window_menu">
        <source-position filename="src/meta/meta-plugin.h" line="136"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
          <parameter name="menu" transfer-ownership="none">
            <type name="WindowMenuType" c:type="MetaWindowMenuType"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show_window_menu_for_rect">
        <source-position filename="src/meta/meta-plugin.h" line="142"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
          <parameter name="menu" transfer-ownership="none">
            <type name="WindowMenuType" c:type="MetaWindowMenuType"/>
          </parameter>
          <parameter name="rect" transfer-ownership="none">
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="size_change">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="45">virtual function called when a window changes size to/from constraints</doc>
        <source-position filename="src/meta/meta-plugin.h" line="93"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
          <parameter name="which_change" transfer-ownership="none">
            <type name="SizeChange" c:type="MetaSizeChange"/>
          </parameter>
          <parameter name="old_frame_rect" transfer-ownership="none">
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
          <parameter name="old_buffer_rect" transfer-ownership="none">
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="size_changed">
        <source-position filename="src/meta/meta-plugin.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="start">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="65">Virtual function called when the compositor starts managing a screen</doc>
        <source-position filename="src/meta/meta-plugin.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="switch_workspace">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="117">Virtual function called when the window represented by @actor is destroyed.</doc>
        <source-position filename="src/meta/meta-plugin.h" line="125"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="from" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="119">origin workspace</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="to" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="120">destination workspace</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="121">a #MetaMotionDirection</doc>
            <type name="MotionDirection" c:type="MetaMotionDirection"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="unminimize">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="81">Virtual function called when the window represented by @actor is unminimized.</doc>
        <source-position filename="src/meta/meta-plugin.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="83">a #MetaWindowActor</doc>
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="xevent_filter">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="166">Virtual function called when handling each event.</doc>
        <source-position filename="src/meta/meta-plugin.h" line="177"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/meta/meta-plugin.h"
               line="172">%TRUE if the plugin handled the event type (i.e., if the return
value is %FALSE, there will be no subsequent call to the manager
completed() callback, and the compositor must ensure that any appropriate
post-effect cleanup is carried out.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="168">a xlib.XEvent</doc>
            <type name="XEvent" c:type="MetaXEvent*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="complete_display_change"
              c:identifier="meta_plugin_complete_display_change">
        <source-position filename="src/meta/meta-plugin.h" line="303"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="ok" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="destroy_completed"
              c:identifier="meta_plugin_destroy_completed">
        <source-position filename="src/meta/meta-plugin.h" line="298"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_display" c:identifier="meta_plugin_get_display">
        <doc xml:space="preserve"
             filename="src/compositor/meta-plugin.c"
             line="132">Gets the #MetaDisplay corresponding to a plugin.</doc>
        <source-position filename="src/meta/meta-plugin.h" line="307"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-plugin.c"
               line="138">the #MetaDisplay for the plugin</doc>
          <type name="Display" c:type="MetaDisplay*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-plugin.c"
                 line="134">a #MetaPlugin</doc>
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="map_completed" c:identifier="meta_plugin_map_completed">
        <source-position filename="src/meta/meta-plugin.h" line="293"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="minimize_completed"
              c:identifier="meta_plugin_minimize_completed">
        <source-position filename="src/meta/meta-plugin.h" line="278"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="size_change_completed"
              c:identifier="meta_plugin_size_change_completed">
        <source-position filename="src/meta/meta-plugin.h" line="288"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="switch_workspace_completed"
              c:identifier="meta_plugin_switch_workspace_completed">
        <source-position filename="src/meta/meta-plugin.h" line="274"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unminimize_completed"
              c:identifier="meta_plugin_unminimize_completed">
        <source-position filename="src/meta/meta-plugin.h" line="283"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
          <parameter name="actor" transfer-ownership="none">
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="PluginClass"
            c:type="MetaPluginClass"
            glib:is-gtype-struct-for="Plugin">
      <source-position filename="src/meta/meta-plugin.h" line="241"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="start">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="43">virtual function called when the compositor starts managing a screen</doc>
        <callback name="start">
          <source-position filename="src/meta/meta-plugin.h" line="70"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="minimize">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="44">virtual function called when a window is minimized</doc>
        <callback name="minimize">
          <source-position filename="src/meta/meta-plugin.h" line="78"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="actor" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/meta/meta-plugin.h"
                   line="74">a #MetaWindowActor</doc>
              <type name="WindowActor" c:type="MetaWindowActor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="unminimize">
        <callback name="unminimize">
          <source-position filename="src/meta/meta-plugin.h" line="87"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="actor" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/meta/meta-plugin.h"
                   line="83">a #MetaWindowActor</doc>
              <type name="WindowActor" c:type="MetaWindowActor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="size_changed">
        <callback name="size_changed">
          <source-position filename="src/meta/meta-plugin.h" line="90"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="actor" transfer-ownership="none">
              <type name="WindowActor" c:type="MetaWindowActor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="size_change">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="45">virtual function called when a window changes size to/from constraints</doc>
        <callback name="size_change">
          <source-position filename="src/meta/meta-plugin.h" line="93"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="actor" transfer-ownership="none">
              <type name="WindowActor" c:type="MetaWindowActor*"/>
            </parameter>
            <parameter name="which_change" transfer-ownership="none">
              <type name="SizeChange" c:type="MetaSizeChange"/>
            </parameter>
            <parameter name="old_frame_rect" transfer-ownership="none">
              <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
            </parameter>
            <parameter name="old_buffer_rect" transfer-ownership="none">
              <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="map">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="46">virtual function called when a window is mapped</doc>
        <callback name="map">
          <source-position filename="src/meta/meta-plugin.h" line="105"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="actor" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/meta/meta-plugin.h"
                   line="101">a #MetaWindowActor</doc>
              <type name="WindowActor" c:type="MetaWindowActor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="destroy">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="47">virtual function called when a window is destroyed</doc>
        <callback name="destroy">
          <source-position filename="src/meta/meta-plugin.h" line="114"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="actor" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/meta/meta-plugin.h"
                   line="110">a #MetaWindowActor</doc>
              <type name="WindowActor" c:type="MetaWindowActor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="switch_workspace">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="48">virtual function called when the user switches to another
workspace</doc>
        <callback name="switch_workspace">
          <source-position filename="src/meta/meta-plugin.h" line="125"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="from" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/meta/meta-plugin.h"
                   line="119">origin workspace</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="to" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/meta/meta-plugin.h"
                   line="120">destination workspace</doc>
              <type name="gint" c:type="gint"/>
            </parameter>
            <parameter name="direction" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/meta/meta-plugin.h"
                   line="121">a #MetaMotionDirection</doc>
              <type name="MotionDirection" c:type="MetaMotionDirection"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_tile_preview">
        <callback name="show_tile_preview">
          <source-position filename="src/meta/meta-plugin.h" line="130"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="MetaWindow*"/>
            </parameter>
            <parameter name="tile_rect" transfer-ownership="none">
              <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
            </parameter>
            <parameter name="tile_monitor_number" transfer-ownership="none">
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="hide_tile_preview">
        <callback name="hide_tile_preview">
          <source-position filename="src/meta/meta-plugin.h" line="134"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_window_menu">
        <callback name="show_window_menu">
          <source-position filename="src/meta/meta-plugin.h" line="136"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="MetaWindow*"/>
            </parameter>
            <parameter name="menu" transfer-ownership="none">
              <type name="WindowMenuType" c:type="MetaWindowMenuType"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="int"/>
            </parameter>
            <parameter name="y" transfer-ownership="none">
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="show_window_menu_for_rect">
        <callback name="show_window_menu_for_rect">
          <source-position filename="src/meta/meta-plugin.h" line="142"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="MetaWindow*"/>
            </parameter>
            <parameter name="menu" transfer-ownership="none">
              <type name="WindowMenuType" c:type="MetaWindowMenuType"/>
            </parameter>
            <parameter name="rect" transfer-ownership="none">
              <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="kill_window_effects">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="50">virtual function called when the effects on a window
need to be killed prematurely; the plugin must call the completed() callback
as if the effect terminated naturally</doc>
        <callback name="kill_window_effects">
          <source-position filename="src/meta/meta-plugin.h" line="155"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="actor" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/meta/meta-plugin.h"
                   line="149">a #MetaWindowActor</doc>
              <type name="WindowActor" c:type="MetaWindowActor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="kill_switch_workspace">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="53">virtual function called when the workspace-switching
effect needs to be killed prematurely</doc>
        <callback name="kill_switch_workspace">
          <source-position filename="src/meta/meta-plugin.h" line="164"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="xevent_filter">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="55">virtual function called when handling each event</doc>
        <callback name="xevent_filter">
          <source-position filename="src/meta/meta-plugin.h" line="177"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="172">%TRUE if the plugin handled the event type (i.e., if the return
value is %FALSE, there will be no subsequent call to the manager
completed() callback, and the compositor must ensure that any appropriate
post-effect cleanup is carried out.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="event" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/meta/meta-plugin.h"
                   line="168">a xlib.XEvent</doc>
              <type name="XEvent" c:type="MetaXEvent*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="keybinding_filter">
        <doc xml:space="preserve"
             filename="src/meta/meta-plugin.h"
             line="56">virtual function called when handling each keybinding</doc>
        <callback name="keybinding_filter">
          <source-position filename="src/meta/meta-plugin.h" line="188"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="186">%TRUE if the plugin handled the keybinding.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="binding" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/meta/meta-plugin.h"
                   line="182">a #MetaKeyBinding</doc>
              <type name="KeyBinding" c:type="MetaKeyBinding*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="confirm_display_change">
        <callback name="confirm_display_change">
          <source-position filename="src/meta/meta-plugin.h" line="204"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_close_dialog">
        <callback name="create_close_dialog">
          <source-position filename="src/meta/meta-plugin.h" line="216"/>
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="214">a #MetaCloseDialog</doc>
            <type name="CloseDialog" c:type="MetaCloseDialog*"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/meta/meta-plugin.h"
                   line="208">a #MetaPlugin</doc>
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/meta/meta-plugin.h"
                   line="209">a #MetaWindow</doc>
              <type name="Window" c:type="MetaWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_inhibit_shortcuts_dialog">
        <callback name="create_inhibit_shortcuts_dialog">
          <source-position filename="src/meta/meta-plugin.h" line="229"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/meta/meta-plugin.h"
                 line="227">a #MetaInhibitShortcutsDialog</doc>
            <type name="InhibitShortcutsDialog"
                  c:type="MetaInhibitShortcutsDialog*"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/meta/meta-plugin.h"
                   line="221">a #MetaPlugin</doc>
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/meta/meta-plugin.h"
                   line="222">a #MetaWindow</doc>
              <type name="Window" c:type="MetaWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="locate_pointer">
        <callback name="locate_pointer">
          <source-position filename="src/meta/meta-plugin.h" line="240"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="PowerSaveChangeReason"
                 glib:type-name="MetaPowerSaveChangeReason"
                 glib:get-type="meta_power_save_change_reason_get_type"
                 c:type="MetaPowerSaveChangeReason">
      <member name="mode_change"
              value="0"
              c:identifier="META_POWER_SAVE_CHANGE_REASON_MODE_CHANGE"
              glib:nick="mode-change"
              glib:name="META_POWER_SAVE_CHANGE_REASON_MODE_CHANGE">
      </member>
      <member name="hotplug"
              value="1"
              c:identifier="META_POWER_SAVE_CHANGE_REASON_HOTPLUG"
              glib:nick="hotplug"
              glib:name="META_POWER_SAVE_CHANGE_REASON_HOTPLUG">
      </member>
    </enumeration>
    <enumeration name="Preference"
                 glib:type-name="MetaPreference"
                 glib:get-type="meta_preference_get_type"
                 c:type="MetaPreference">
      <member name="mouse_button_mods"
              value="0"
              c:identifier="META_PREF_MOUSE_BUTTON_MODS"
              glib:nick="mouse-button-mods"
              glib:name="META_PREF_MOUSE_BUTTON_MODS">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="34">mouse button modifiers</doc>
      </member>
      <member name="focus_mode"
              value="1"
              c:identifier="META_PREF_FOCUS_MODE"
              glib:nick="focus-mode"
              glib:name="META_PREF_FOCUS_MODE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="35">focus mode</doc>
      </member>
      <member name="focus_new_windows"
              value="2"
              c:identifier="META_PREF_FOCUS_NEW_WINDOWS"
              glib:nick="focus-new-windows"
              glib:name="META_PREF_FOCUS_NEW_WINDOWS">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="36">focus new windows</doc>
      </member>
      <member name="attach_modal_dialogs"
              value="3"
              c:identifier="META_PREF_ATTACH_MODAL_DIALOGS"
              glib:nick="attach-modal-dialogs"
              glib:name="META_PREF_ATTACH_MODAL_DIALOGS">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="37">attach modal dialogs</doc>
      </member>
      <member name="raise_on_click"
              value="4"
              c:identifier="META_PREF_RAISE_ON_CLICK"
              glib:nick="raise-on-click"
              glib:name="META_PREF_RAISE_ON_CLICK">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="38">raise on click</doc>
      </member>
      <member name="action_double_click_titlebar"
              value="5"
              c:identifier="META_PREF_ACTION_DOUBLE_CLICK_TITLEBAR"
              glib:nick="action-double-click-titlebar"
              glib:name="META_PREF_ACTION_DOUBLE_CLICK_TITLEBAR">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="39">action double click titlebar</doc>
      </member>
      <member name="action_middle_click_titlebar"
              value="6"
              c:identifier="META_PREF_ACTION_MIDDLE_CLICK_TITLEBAR"
              glib:nick="action-middle-click-titlebar"
              glib:name="META_PREF_ACTION_MIDDLE_CLICK_TITLEBAR">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="40">action middle click titlebar</doc>
      </member>
      <member name="action_right_click_titlebar"
              value="7"
              c:identifier="META_PREF_ACTION_RIGHT_CLICK_TITLEBAR"
              glib:nick="action-right-click-titlebar"
              glib:name="META_PREF_ACTION_RIGHT_CLICK_TITLEBAR">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="41">action right click titlebar</doc>
      </member>
      <member name="auto_raise"
              value="8"
              c:identifier="META_PREF_AUTO_RAISE"
              glib:nick="auto-raise"
              glib:name="META_PREF_AUTO_RAISE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="42">auto-raise</doc>
      </member>
      <member name="auto_raise_delay"
              value="9"
              c:identifier="META_PREF_AUTO_RAISE_DELAY"
              glib:nick="auto-raise-delay"
              glib:name="META_PREF_AUTO_RAISE_DELAY">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="43">auto-raise delay</doc>
      </member>
      <member name="focus_change_on_pointer_rest"
              value="10"
              c:identifier="META_PREF_FOCUS_CHANGE_ON_POINTER_REST"
              glib:nick="focus-change-on-pointer-rest"
              glib:name="META_PREF_FOCUS_CHANGE_ON_POINTER_REST">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="44">focus change on pointer rest</doc>
      </member>
      <member name="num_workspaces"
              value="11"
              c:identifier="META_PREF_NUM_WORKSPACES"
              glib:nick="num-workspaces"
              glib:name="META_PREF_NUM_WORKSPACES">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="45">number of workspaces</doc>
      </member>
      <member name="dynamic_workspaces"
              value="12"
              c:identifier="META_PREF_DYNAMIC_WORKSPACES"
              glib:nick="dynamic-workspaces"
              glib:name="META_PREF_DYNAMIC_WORKSPACES">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="46">dynamic workspaces</doc>
      </member>
      <member name="keybindings"
              value="13"
              c:identifier="META_PREF_KEYBINDINGS"
              glib:nick="keybindings"
              glib:name="META_PREF_KEYBINDINGS">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="47">keybindings</doc>
      </member>
      <member name="disable_workarounds"
              value="14"
              c:identifier="META_PREF_DISABLE_WORKAROUNDS"
              glib:nick="disable-workarounds"
              glib:name="META_PREF_DISABLE_WORKAROUNDS">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="48">disable workarounds</doc>
      </member>
      <member name="button_layout"
              value="15"
              c:identifier="META_PREF_BUTTON_LAYOUT"
              glib:nick="button-layout"
              glib:name="META_PREF_BUTTON_LAYOUT">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="49">button layout</doc>
      </member>
      <member name="workspace_names"
              value="16"
              c:identifier="META_PREF_WORKSPACE_NAMES"
              glib:nick="workspace-names"
              glib:name="META_PREF_WORKSPACE_NAMES">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="50">workspace names</doc>
      </member>
      <member name="visual_bell"
              value="17"
              c:identifier="META_PREF_VISUAL_BELL"
              glib:nick="visual-bell"
              glib:name="META_PREF_VISUAL_BELL">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="51">visual bell</doc>
      </member>
      <member name="audible_bell"
              value="18"
              c:identifier="META_PREF_AUDIBLE_BELL"
              glib:nick="audible-bell"
              glib:name="META_PREF_AUDIBLE_BELL">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="52">audible bell</doc>
      </member>
      <member name="visual_bell_type"
              value="19"
              c:identifier="META_PREF_VISUAL_BELL_TYPE"
              glib:nick="visual-bell-type"
              glib:name="META_PREF_VISUAL_BELL_TYPE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="53">visual bell type</doc>
      </member>
      <member name="gnome_accessibility"
              value="20"
              c:identifier="META_PREF_GNOME_ACCESSIBILITY"
              glib:nick="gnome-accessibility"
              glib:name="META_PREF_GNOME_ACCESSIBILITY">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="54">GNOME accessibility</doc>
      </member>
      <member name="gnome_animations"
              value="21"
              c:identifier="META_PREF_GNOME_ANIMATIONS"
              glib:nick="gnome-animations"
              glib:name="META_PREF_GNOME_ANIMATIONS">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="55">GNOME animations</doc>
      </member>
      <member name="cursor_theme"
              value="22"
              c:identifier="META_PREF_CURSOR_THEME"
              glib:nick="cursor-theme"
              glib:name="META_PREF_CURSOR_THEME">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="56">cursor theme</doc>
      </member>
      <member name="cursor_size"
              value="23"
              c:identifier="META_PREF_CURSOR_SIZE"
              glib:nick="cursor-size"
              glib:name="META_PREF_CURSOR_SIZE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="57">cursor size</doc>
      </member>
      <member name="resize_with_right_button"
              value="24"
              c:identifier="META_PREF_RESIZE_WITH_RIGHT_BUTTON"
              glib:nick="resize-with-right-button"
              glib:name="META_PREF_RESIZE_WITH_RIGHT_BUTTON">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="58">resize with right button</doc>
      </member>
      <member name="edge_tiling"
              value="25"
              c:identifier="META_PREF_EDGE_TILING"
              glib:nick="edge-tiling"
              glib:name="META_PREF_EDGE_TILING">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="59">edge tiling</doc>
      </member>
      <member name="force_fullscreen"
              value="26"
              c:identifier="META_PREF_FORCE_FULLSCREEN"
              glib:nick="force-fullscreen"
              glib:name="META_PREF_FORCE_FULLSCREEN">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="60">force fullscreen</doc>
      </member>
      <member name="workspaces_only_on_primary"
              value="27"
              c:identifier="META_PREF_WORKSPACES_ONLY_ON_PRIMARY"
              glib:nick="workspaces-only-on-primary"
              glib:name="META_PREF_WORKSPACES_ONLY_ON_PRIMARY">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="61">workspaces only on primary</doc>
      </member>
      <member name="draggable_border_width"
              value="28"
              c:identifier="META_PREF_DRAGGABLE_BORDER_WIDTH"
              glib:nick="draggable-border-width"
              glib:name="META_PREF_DRAGGABLE_BORDER_WIDTH">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="62">draggable border width</doc>
      </member>
      <member name="auto_maximize"
              value="29"
              c:identifier="META_PREF_AUTO_MAXIMIZE"
              glib:nick="auto-maximize"
              glib:name="META_PREF_AUTO_MAXIMIZE">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="63">auto-maximize</doc>
      </member>
      <member name="center_new_windows"
              value="30"
              c:identifier="META_PREF_CENTER_NEW_WINDOWS"
              glib:nick="center-new-windows"
              glib:name="META_PREF_CENTER_NEW_WINDOWS">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="64">center new windows</doc>
      </member>
      <member name="drag_threshold"
              value="31"
              c:identifier="META_PREF_DRAG_THRESHOLD"
              glib:nick="drag-threshold"
              glib:name="META_PREF_DRAG_THRESHOLD">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="65">drag threshold</doc>
      </member>
      <member name="locate_pointer"
              value="32"
              c:identifier="META_PREF_LOCATE_POINTER"
              glib:nick="locate-pointer"
              glib:name="META_PREF_LOCATE_POINTER">
        <doc xml:space="preserve"
             filename="src/meta/prefs.h"
             line="66">show pointer location</doc>
      </member>
      <member name="check_alive_timeout"
              value="33"
              c:identifier="META_PREF_CHECK_ALIVE_TIMEOUT"
              glib:nick="check-alive-timeout"
              glib:name="META_PREF_CHECK_ALIVE_TIMEOUT">
      </member>
      <function name="to_string" c:identifier="meta_preference_to_string">
        <source-position filename="src/meta/prefs.h" line="120"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <parameter name="pref" transfer-ownership="none">
            <type name="Preference" c:type="MetaPreference"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <callback name="PrefsChangedFunc" c:type="MetaPrefsChangedFunc">
      <source-position filename="src/meta/prefs.h" line="108"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="pref" transfer-ownership="none">
          <type name="Preference" c:type="MetaPreference"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="RemoteAccessController"
           c:symbol-prefix="remote_access_controller"
           c:type="MetaRemoteAccessController"
           parent="GObject.Object"
           glib:type-name="MetaRemoteAccessController"
           glib:get-type="meta_remote_access_controller_get_type"
           glib:type-struct="RemoteAccessControllerClass">
      <source-position filename="src/meta/meta-remote-access-controller.h"
                       line="49"/>
      <method name="inhibit_remote_access"
              c:identifier="meta_remote_access_controller_inhibit_remote_access">
        <doc xml:space="preserve"
             filename="src/backends/meta-remote-access-controller.c"
             line="145">Inhibits remote access sessions from being created and running. Any active
remote access session will be terminated.</doc>
        <source-position filename="src/meta/meta-remote-access-controller.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="controller" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-remote-access-controller.c"
                 line="147">a #MetaRemoteAccessController</doc>
            <type name="RemoteAccessController"
                  c:type="MetaRemoteAccessController*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="uninhibit_remote_access"
              c:identifier="meta_remote_access_controller_uninhibit_remote_access">
        <doc xml:space="preserve"
             filename="src/backends/meta-remote-access-controller.c"
             line="165">Uninhibits remote access sessions from being created and running. If this was
the last inhibition that was inhibited, new remote access sessions can now
be created.</doc>
        <source-position filename="src/meta/meta-remote-access-controller.h"
                         line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="controller" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-remote-access-controller.c"
                 line="167">a #MetaRemoteAccessController</doc>
            <type name="RemoteAccessController"
                  c:type="MetaRemoteAccessController*"/>
          </instance-parameter>
        </parameters>
      </method>
      <glib:signal name="new-handle" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="RemoteAccessHandle"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="RemoteAccessControllerClass"
            c:type="MetaRemoteAccessControllerClass"
            glib:is-gtype-struct-for="RemoteAccessController">
      <source-position filename="src/meta/meta-remote-access-controller.h"
                       line="49"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="RemoteAccessHandle"
           c:symbol-prefix="remote_access_handle"
           c:type="MetaRemoteAccessHandle"
           parent="GObject.Object"
           glib:type-name="MetaRemoteAccessHandle"
           glib:get-type="meta_remote_access_handle_get_type"
           glib:type-struct="RemoteAccessHandleClass">
      <source-position filename="src/meta/meta-remote-access-controller.h"
                       line="38"/>
      <virtual-method name="stop" invoker="stop">
        <doc xml:space="preserve"
             filename="src/backends/meta-remote-access-controller.c"
             line="83">Stop the associated remote access session.</doc>
        <source-position filename="src/meta/meta-remote-access-controller.h"
                         line="37"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="handle" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-remote-access-controller.c"
                 line="85">A #MetaRemoteAccessHandle</doc>
            <type name="RemoteAccessHandle" c:type="MetaRemoteAccessHandle*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_disable_animations"
              c:identifier="meta_remote_access_handle_get_disable_animations">
        <source-position filename="src/meta/meta-remote-access-controller.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="handle" transfer-ownership="none">
            <type name="RemoteAccessHandle" c:type="MetaRemoteAccessHandle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="meta_remote_access_handle_stop">
        <doc xml:space="preserve"
             filename="src/backends/meta-remote-access-controller.c"
             line="83">Stop the associated remote access session.</doc>
        <source-position filename="src/meta/meta-remote-access-controller.h"
                         line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="handle" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/backends/meta-remote-access-controller.c"
                 line="85">A #MetaRemoteAccessHandle</doc>
            <type name="RemoteAccessHandle" c:type="MetaRemoteAccessHandle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="is-recording"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="stopped" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="RemoteAccessHandleClass"
            c:type="MetaRemoteAccessHandleClass"
            glib:is-gtype-struct-for="RemoteAccessHandle">
      <source-position filename="src/meta/meta-remote-access-controller.h"
                       line="38"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="stop">
        <callback name="stop">
          <source-position filename="src/meta/meta-remote-access-controller.h"
                           line="37"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="handle" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/backends/meta-remote-access-controller.c"
                   line="85">A #MetaRemoteAccessHandle</doc>
              <type name="RemoteAccessHandle"
                    c:type="MetaRemoteAccessHandle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Selection"
           c:symbol-prefix="selection"
           c:type="MetaSelection"
           parent="GObject.Object"
           glib:type-name="MetaSelection"
           glib:get-type="meta_selection_get_type"
           glib:type-struct="SelectionClass">
      <source-position filename="src/meta/meta-selection.h" line="31"/>
      <constructor name="new" c:identifier="meta_selection_new">
        <source-position filename="src/meta/meta-selection.h" line="38"/>
        <return-value transfer-ownership="full">
          <type name="Selection" c:type="MetaSelection*"/>
        </return-value>
        <parameters>
          <parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_mimetypes" c:identifier="meta_selection_get_mimetypes">
        <doc xml:space="preserve"
             filename="src/core/meta-selection.c"
             line="162">Returns the list of supported mimetypes for the given selection type.</doc>
        <source-position filename="src/meta/meta-selection.h" line="50"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/core/meta-selection.c"
               line="169">The supported mimetypes</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="164">The selection manager</doc>
            <type name="Selection" c:type="MetaSelection*"/>
          </instance-parameter>
          <parameter name="selection_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="165">Selection to query</doc>
            <type name="SelectionType" c:type="MetaSelectionType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_owner" c:identifier="meta_selection_set_owner">
        <doc xml:space="preserve"
             filename="src/core/meta-selection.c"
             line="108">Sets @owner as the owner of the selection given by @selection_type,
unsets any previous owner there was.</doc>
        <source-position filename="src/meta/meta-selection.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="110">The selection manager</doc>
            <type name="Selection" c:type="MetaSelection*"/>
          </instance-parameter>
          <parameter name="selection_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="111">Selection type</doc>
            <type name="SelectionType" c:type="MetaSelectionType"/>
          </parameter>
          <parameter name="owner" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="112">New selection owner</doc>
            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="transfer_async"
              c:identifier="meta_selection_transfer_async"
              glib:finish-func="transfer_finish">
        <doc xml:space="preserve"
             filename="src/core/meta-selection.c"
             line="409">Requests a transfer of @mimetype on the selection given by
@selection_type.</doc>
        <source-position filename="src/meta/meta-selection.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="411">The selection manager</doc>
            <type name="Selection" c:type="MetaSelection*"/>
          </instance-parameter>
          <parameter name="selection_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="412">Selection type</doc>
            <type name="SelectionType" c:type="MetaSelectionType"/>
          </parameter>
          <parameter name="mimetype" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="413">Mimetype to transfer</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="414">Maximum size to transfer, -1 for unlimited</doc>
            <type name="gssize" c:type="gssize"/>
          </parameter>
          <parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="415">Output stream to write contents to</doc>
            <type name="Gio.OutputStream" c:type="GOutputStream*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="416">Cancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="6">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="417">User callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="418">User data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="transfer_finish"
              c:identifier="meta_selection_transfer_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="src/core/meta-selection.c"
             line="463">Finishes the transfer of a queried mimetype.</doc>
        <source-position filename="src/meta/meta-selection.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/meta-selection.c"
               line="471">#TRUE if the transfer was successful.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="465">The selection manager</doc>
            <type name="Selection" c:type="MetaSelection*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="466">The async result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unset_owner" c:identifier="meta_selection_unset_owner">
        <doc xml:space="preserve"
             filename="src/core/meta-selection.c"
             line="136">Unsets @owner as the owner the selection given by @selection_type. If
@owner does not own the selection, nothing is done.</doc>
        <source-position filename="src/meta/meta-selection.h" line="45"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="selection" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="138">The selection manager</doc>
            <type name="Selection" c:type="MetaSelection*"/>
          </instance-parameter>
          <parameter name="selection_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="139">Selection type</doc>
            <type name="SelectionType" c:type="MetaSelectionType"/>
          </parameter>
          <parameter name="owner" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection.c"
                 line="140">Owner to unset</doc>
            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="owner-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="SelectionSource"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="SelectionClass"
            c:type="MetaSelectionClass"
            glib:is-gtype-struct-for="Selection">
      <source-position filename="src/meta/meta-selection.h" line="31"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="SelectionSource"
           c:symbol-prefix="selection_source"
           c:type="MetaSelectionSource"
           parent="GObject.Object"
           glib:type-name="MetaSelectionSource"
           glib:get-type="meta_selection_source_get_type"
           glib:type-struct="SelectionSourceClass">
      <source-position filename="src/meta/meta-selection-source.h" line="62"/>
      <virtual-method name="activated">
        <source-position filename="src/meta/meta-selection-source.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="deactivated">
        <source-position filename="src/meta/meta-selection-source.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_mimetypes" invoker="get_mimetypes">
        <doc xml:space="preserve"
             filename="src/core/meta-selection-source.c"
             line="131">Returns the list of supported mimetypes.</doc>
        <source-position filename="src/meta/meta-selection-source.h"
                         line="52"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/core/meta-selection-source.c"
               line="137">The supported mimetypes</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection-source.c"
                 line="133">The selection source</doc>
            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="read_async"
                      invoker="read_async"
                      glib:finish-func="read_finish">
        <source-position filename="src/meta/meta-selection-source.h"
                         line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
          </instance-parameter>
          <parameter name="mimetype" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="3">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="read_finish" invoker="read_finish" throws="1">
        <doc xml:space="preserve"
             filename="src/core/meta-selection-source.c"
             line="108">Finishes a read from the selection source.</doc>
        <source-position filename="src/meta/meta-selection-source.h"
                         line="59"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/core/meta-selection-source.c"
               line="116">The resulting #GInputStream</doc>
          <type name="Gio.InputStream" c:type="GInputStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection-source.c"
                 line="110">The selection source</doc>
            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection-source.c"
                 line="111">The async result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_mimetypes"
              c:identifier="meta_selection_source_get_mimetypes">
        <doc xml:space="preserve"
             filename="src/core/meta-selection-source.c"
             line="131">Returns the list of supported mimetypes.</doc>
        <source-position filename="src/meta/meta-selection-source.h"
                         line="77"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/core/meta-selection-source.c"
               line="137">The supported mimetypes</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection-source.c"
                 line="133">The selection source</doc>
            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_active" c:identifier="meta_selection_source_is_active">
        <doc xml:space="preserve"
             filename="src/core/meta-selection-source.c"
             line="147">Returns #TRUE if the source is active on a selection.</doc>
        <source-position filename="src/meta/meta-selection-source.h"
                         line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/meta-selection-source.c"
               line="153">#TRUE if the source owns a selection.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection-source.c"
                 line="149">the selection source</doc>
            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="read_async"
              c:identifier="meta_selection_source_read_async"
              glib:finish-func="read_finish">
        <source-position filename="src/meta/meta-selection-source.h"
                         line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
          </instance-parameter>
          <parameter name="mimetype" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="read_finish"
              c:identifier="meta_selection_source_read_finish"
              throws="1">
        <doc xml:space="preserve"
             filename="src/core/meta-selection-source.c"
             line="108">Finishes a read from the selection source.</doc>
        <source-position filename="src/meta/meta-selection-source.h"
                         line="72"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/core/meta-selection-source.c"
               line="116">The resulting #GInputStream</doc>
          <type name="Gio.InputStream" c:type="GInputStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="source" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection-source.c"
                 line="110">The selection source</doc>
            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection-source.c"
                 line="111">The async result</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="activated" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="deactivated" when="last" action="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="SelectionSourceClass"
            c:type="MetaSelectionSourceClass"
            glib:is-gtype-struct-for="SelectionSource">
      <source-position filename="src/meta/meta-selection-source.h" line="62"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="activated">
        <callback name="activated">
          <source-position filename="src/meta/meta-selection-source.h"
                           line="49"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <type name="SelectionSource" c:type="MetaSelectionSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="deactivated">
        <callback name="deactivated">
          <source-position filename="src/meta/meta-selection-source.h"
                           line="50"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <type name="SelectionSource" c:type="MetaSelectionSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_mimetypes">
        <callback name="get_mimetypes">
          <source-position filename="src/meta/meta-selection-source.h"
                           line="52"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection-source.c"
                 line="137">The supported mimetypes</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="utf8"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/core/meta-selection-source.c"
                   line="133">The selection source</doc>
              <type name="SelectionSource" c:type="MetaSelectionSource*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="read_async">
        <callback name="read_async">
          <source-position filename="src/meta/meta-selection-source.h"
                           line="54"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <type name="SelectionSource" c:type="MetaSelectionSource*"/>
            </parameter>
            <parameter name="mimetype" transfer-ownership="none">
              <type name="utf8" c:type="const gchar*"/>
            </parameter>
            <parameter name="cancellable"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="Gio.Cancellable" c:type="GCancellable*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       scope="async"
                       closure="4">
              <type name="Gio.AsyncReadyCallback"
                    c:type="GAsyncReadyCallback"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="4">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="read_finish">
        <callback name="read_finish" throws="1">
          <source-position filename="src/meta/meta-selection-source.h"
                           line="59"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="src/core/meta-selection-source.c"
                 line="116">The resulting #GInputStream</doc>
            <type name="Gio.InputStream" c:type="GInputStream*"/>
          </return-value>
          <parameters>
            <parameter name="source" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/core/meta-selection-source.c"
                   line="110">The selection source</doc>
              <type name="SelectionSource" c:type="MetaSelectionSource*"/>
            </parameter>
            <parameter name="result" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="src/core/meta-selection-source.c"
                   line="111">The async result</doc>
              <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="SelectionSourceMemory"
           c:symbol-prefix="selection_source_memory"
           c:type="MetaSelectionSourceMemory"
           parent="SelectionSource"
           glib:type-name="MetaSelectionSourceMemory"
           glib:get-type="meta_selection_source_memory_get_type"
           glib:type-struct="SelectionSourceMemoryClass">
      <source-position filename="src/meta/meta-selection-source-memory.h"
                       line="27"/>
      <constructor name="new"
                   c:identifier="meta_selection_source_memory_new"
                   throws="1">
        <source-position filename="src/meta/meta-selection-source-memory.h"
                         line="33"/>
        <return-value transfer-ownership="full">
          <type name="SelectionSource" c:type="MetaSelectionSource*"/>
        </return-value>
        <parameters>
          <parameter name="mimetype" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="content" transfer-ownership="none">
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </parameter>
        </parameters>
      </constructor>
    </class>
    <record name="SelectionSourceMemoryClass"
            c:type="MetaSelectionSourceMemoryClass"
            glib:is-gtype-struct-for="SelectionSourceMemory">
      <source-position filename="src/meta/meta-selection-source-memory.h"
                       line="27"/>
      <field name="parent_class">
        <type name="SelectionSourceClass" c:type="MetaSelectionSourceClass"/>
      </field>
    </record>
    <enumeration name="SelectionType"
                 glib:type-name="MetaSelectionType"
                 glib:get-type="meta_selection_type_get_type"
                 c:type="MetaSelectionType">
      <member name="selection_primary"
              value="0"
              c:identifier="META_SELECTION_PRIMARY"
              glib:nick="selection-primary"
              glib:name="META_SELECTION_PRIMARY">
      </member>
      <member name="selection_clipboard"
              value="1"
              c:identifier="META_SELECTION_CLIPBOARD"
              glib:nick="selection-clipboard"
              glib:name="META_SELECTION_CLIPBOARD">
      </member>
      <member name="selection_dnd"
              value="2"
              c:identifier="META_SELECTION_DND"
              glib:nick="selection-dnd"
              glib:name="META_SELECTION_DND">
      </member>
      <member name="n_selection_types"
              value="3"
              c:identifier="META_N_SELECTION_TYPES"
              glib:nick="n-selection-types"
              glib:name="META_N_SELECTION_TYPES">
      </member>
    </enumeration>
    <record name="Settings" c:type="MetaSettings" disguised="1" opaque="1">
      <source-position filename="src/meta/types.h" line="34"/>
      <method name="get_font_dpi" c:identifier="meta_settings_get_font_dpi">
        <source-position filename="src/meta/meta-settings.h" line="29"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <type name="Settings" c:type="MetaSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ui_scaling_factor"
              c:identifier="meta_settings_get_ui_scaling_factor">
        <source-position filename="src/meta/meta-settings.h" line="26"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="settings" transfer-ownership="none">
            <type name="Settings" c:type="MetaSettings*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="ShapedTexture"
           c:symbol-prefix="shaped_texture"
           c:type="MetaShapedTexture"
           parent="GObject.Object"
           glib:type-name="MetaShapedTexture"
           glib:get-type="meta_shaped_texture_get_type"
           glib:type-struct="ShapedTextureClass">
      <doc xml:space="preserve"
           filename="src/compositor/meta-shaped-texture.c"
           line="24">A ClutterContent which draws a shaped texture

A MetaShapedTexture draws a #CoglTexture (often provided from a client
surface) in such a way that it matches any required transformations that
give its final shape, such as a #MtkMonitorTransform, y-invertedness, or a
crop-and-scale operation.</doc>
      <source-position filename="src/meta/meta-shaped-texture.h" line="37"/>
      <implements name="Clutter.Content"/>
      <method name="get_image" c:identifier="meta_shaped_texture_get_image">
        <doc xml:space="preserve"
             filename="src/compositor/meta-shaped-texture.c"
             line="1618">Flattens the two layers of the shaped texture into one ARGB32
image by alpha blending the two images, and returns the flattened
image.</doc>
        <source-position filename="src/meta/meta-shaped-texture.h" line="55"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/compositor/meta-shaped-texture.c"
               line="1629">a new cairo surface to be freed with
cairo_surface_destroy().</doc>
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stex" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-shaped-texture.c"
                 line="1620">A #MetaShapedTexture</doc>
            <type name="ShapedTexture" c:type="MetaShapedTexture*"/>
          </instance-parameter>
          <parameter name="clip"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-shaped-texture.c"
                 line="1621">A clipping rectangle, to help prevent extra processing.
In the case that the clipping rectangle is partially or fully
outside the bounds of the texture, the rectangle will be clipped.</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_texture"
              c:identifier="meta_shaped_texture_get_texture">
        <source-position filename="src/meta/meta-shaped-texture.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-shaped-texture.c"
               line="1387">the unshaped texture</doc>
          <type name="MultiTexture" c:type="MetaMultiTexture*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stex" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-shaped-texture.c"
                 line="1385">The #MetaShapedTexture</doc>
            <type name="ShapedTexture" c:type="MetaShapedTexture*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_create_mipmaps"
              c:identifier="meta_shaped_texture_set_create_mipmaps">
        <source-position filename="src/meta/meta-shaped-texture.h" line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stex" transfer-ownership="none">
            <type name="ShapedTexture" c:type="MetaShapedTexture*"/>
          </instance-parameter>
          <parameter name="create_mipmaps" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_mask_texture"
              c:identifier="meta_shaped_texture_set_mask_texture">
        <source-position filename="src/meta/meta-shaped-texture.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="stex" transfer-ownership="none">
            <type name="ShapedTexture" c:type="MetaShapedTexture*"/>
          </instance-parameter>
          <parameter name="mask_texture" transfer-ownership="none">
            <type name="Cogl.Texture" c:type="CoglTexture*"/>
          </parameter>
        </parameters>
      </method>
      <property name="clutter-context"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Clutter.Context"/>
      </property>
      <property name="color-state"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Clutter.ColorState"/>
      </property>
      <glib:signal name="size-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ShapedTextureClass"
            c:type="MetaShapedTextureClass"
            glib:is-gtype-struct-for="ShapedTexture">
      <source-position filename="src/meta/meta-shaped-texture.h" line="37"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="Side"
                 glib:type-name="MetaSide"
                 glib:get-type="meta_side_get_type"
                 c:type="MetaSide">
      <member name="left"
              value="1"
              c:identifier="META_SIDE_LEFT"
              glib:nick="left"
              glib:name="META_SIDE_LEFT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="287">Left side</doc>
      </member>
      <member name="right"
              value="2"
              c:identifier="META_SIDE_RIGHT"
              glib:nick="right"
              glib:name="META_SIDE_RIGHT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="288">Right side</doc>
      </member>
      <member name="top"
              value="4"
              c:identifier="META_SIDE_TOP"
              glib:nick="top"
              glib:name="META_SIDE_TOP">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="289">Top side</doc>
      </member>
      <member name="bottom"
              value="8"
              c:identifier="META_SIDE_BOTTOM"
              glib:nick="bottom"
              glib:name="META_SIDE_BOTTOM">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="290">Bottom side</doc>
      </member>
    </enumeration>
    <enumeration name="SizeChange"
                 glib:type-name="MetaSizeChange"
                 glib:get-type="meta_size_change_get_type"
                 c:type="MetaSizeChange">
      <member name="maximize"
              value="0"
              c:identifier="META_SIZE_CHANGE_MAXIMIZE"
              glib:nick="maximize"
              glib:name="META_SIZE_CHANGE_MAXIMIZE">
      </member>
      <member name="unmaximize"
              value="1"
              c:identifier="META_SIZE_CHANGE_UNMAXIMIZE"
              glib:nick="unmaximize"
              glib:name="META_SIZE_CHANGE_UNMAXIMIZE">
      </member>
      <member name="fullscreen"
              value="2"
              c:identifier="META_SIZE_CHANGE_FULLSCREEN"
              glib:nick="fullscreen"
              glib:name="META_SIZE_CHANGE_FULLSCREEN">
      </member>
      <member name="unfullscreen"
              value="3"
              c:identifier="META_SIZE_CHANGE_UNFULLSCREEN"
              glib:nick="unfullscreen"
              glib:name="META_SIZE_CHANGE_UNFULLSCREEN">
      </member>
      <member name="monitor_move"
              value="4"
              c:identifier="META_SIZE_CHANGE_MONITOR_MOVE"
              glib:nick="monitor-move"
              glib:name="META_SIZE_CHANGE_MONITOR_MOVE">
      </member>
    </enumeration>
    <class name="SoundPlayer"
           c:symbol-prefix="sound_player"
           c:type="MetaSoundPlayer"
           parent="GObject.Object"
           glib:type-name="MetaSoundPlayer"
           glib:get-type="meta_sound_player_get_type"
           glib:type-struct="SoundPlayerClass">
      <source-position filename="src/meta/meta-sound-player.h" line="29"/>
      <method name="play_from_file"
              c:identifier="meta_sound_player_play_from_file">
        <doc xml:space="preserve"
             filename="src/core/meta-sound-player.c"
             line="280">Plays a sound from a file.</doc>
        <source-position filename="src/meta/meta-sound-player.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-sound-player.c"
                 line="282">a #MetaSoundPlayer</doc>
            <type name="SoundPlayer" c:type="MetaSoundPlayer*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-sound-player.c"
                 line="283">file to play</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-sound-player.c"
                 line="284">description of the played sound</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/core/meta-sound-player.c"
                 line="285">cancellable for the request</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
      <method name="play_from_theme"
              c:identifier="meta_sound_player_play_from_theme">
        <doc xml:space="preserve"
             filename="src/core/meta-sound-player.c"
             line="244">Plays a sound from the sound theme.</doc>
        <source-position filename="src/meta/meta-sound-player.h" line="33"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="player" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-sound-player.c"
                 line="246">a #MetaSoundPlayer</doc>
            <type name="SoundPlayer" c:type="MetaSoundPlayer*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-sound-player.c"
                 line="247">sound theme name of the event</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-sound-player.c"
                 line="248">description of the event</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/core/meta-sound-player.c"
                 line="249">cancellable for the request</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="SoundPlayerClass"
            c:type="MetaSoundPlayerClass"
            glib:is-gtype-struct-for="SoundPlayer">
      <source-position filename="src/meta/meta-sound-player.h" line="29"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="StackLayer"
                 glib:type-name="MetaStackLayer"
                 glib:get-type="meta_stack_layer_get_type"
                 c:type="MetaStackLayer">
      <doc xml:space="preserve"
           filename="src/meta/meta-enums.h"
           line="341">Layers a window can be in.
These MUST be in the order of stacking.</doc>
      <member name="desktop"
              value="0"
              c:identifier="META_LAYER_DESKTOP"
              glib:nick="desktop"
              glib:name="META_LAYER_DESKTOP">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="343">Desktop layer</doc>
      </member>
      <member name="bottom"
              value="1"
              c:identifier="META_LAYER_BOTTOM"
              glib:nick="bottom"
              glib:name="META_LAYER_BOTTOM">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="344">Bottom layer</doc>
      </member>
      <member name="normal"
              value="2"
              c:identifier="META_LAYER_NORMAL"
              glib:nick="normal"
              glib:name="META_LAYER_NORMAL">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="345">Normal layer</doc>
      </member>
      <member name="top"
              value="4"
              c:identifier="META_LAYER_TOP"
              glib:nick="top"
              glib:name="META_LAYER_TOP">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="346">Top layer</doc>
      </member>
      <member name="dock"
              value="4"
              c:identifier="META_LAYER_DOCK"
              glib:nick="dock"
              glib:name="META_LAYER_DOCK">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="347">Dock layer</doc>
      </member>
      <member name="override_redirect"
              value="7"
              c:identifier="META_LAYER_OVERRIDE_REDIRECT"
              glib:nick="override-redirect"
              glib:name="META_LAYER_OVERRIDE_REDIRECT">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="348">Override-redirect layer</doc>
      </member>
      <member name="last"
              value="8"
              c:identifier="META_LAYER_LAST"
              glib:nick="last"
              glib:name="META_LAYER_LAST">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="349">Marks the end of the #MetaStackLayer enumeration</doc>
      </member>
    </enumeration>
    <class name="Stage"
           c:symbol-prefix="stage"
           c:type="MetaStage"
           parent="Clutter.Stage"
           glib:type-name="MetaStage"
           glib:get-type="meta_stage_get_type"
           glib:type-struct="StageClass">
      <source-position filename="src/meta/meta-stage.h" line="27"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
    </class>
    <record name="StageClass"
            c:type="MetaStageClass"
            glib:is-gtype-struct-for="Stage">
      <source-position filename="src/meta/meta-stage.h" line="27"/>
      <field name="parent_class">
        <type name="Clutter.StageClass" c:type="ClutterStageClass"/>
      </field>
    </record>
    <class name="StartupNotification"
           c:symbol-prefix="startup_notification"
           c:type="MetaStartupNotification"
           parent="GObject.Object"
           glib:type-name="MetaStartupNotification"
           glib:get-type="meta_startup_notification_get_type"
           glib:type-struct="StartupNotificationClass">
      <source-position filename="src/meta/meta-startup-notification.h"
                       line="27"/>
      <method name="create_launcher"
              c:identifier="meta_startup_notification_create_launcher">
        <doc xml:space="preserve"
             filename="src/core/startup-notification.c"
             line="744">Creates an app launch context.</doc>
        <source-position filename="src/meta/meta-startup-notification.h"
                         line="43"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/core/startup-notification.c"
               line="750">a launch context.</doc>
          <type name="LaunchContext" c:type="MetaLaunchContext*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sn" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/startup-notification.c"
                 line="746">a #MetaStartupNotification</doc>
            <type name="StartupNotification"
                  c:type="MetaStartupNotification*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sequences"
              c:identifier="meta_startup_notification_get_sequences">
        <doc xml:space="preserve"
             filename="src/core/startup-notification.c"
             line="729">Get the list of startup sequences arrived in the startup notification object.</doc>
        <source-position filename="src/meta/meta-startup-notification.h"
                         line="39"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/startup-notification.c"
               line="735">a #GSList of
#MetaStartupSequence in the #MetaStartupNotification.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="StartupSequence"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="sn" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/startup-notification.c"
                 line="731">a #MetaStartupNotification</doc>
            <type name="StartupNotification"
                  c:type="MetaStartupNotification*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="display"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Display"/>
      </property>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="StartupSequence"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="StartupNotificationClass"
            c:type="MetaStartupNotificationClass"
            glib:is-gtype-struct-for="StartupNotification">
      <source-position filename="src/meta/meta-startup-notification.h"
                       line="27"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="StartupSequence"
           c:symbol-prefix="startup_sequence"
           c:type="MetaStartupSequence"
           parent="GObject.Object"
           glib:type-name="MetaStartupSequence"
           glib:get-type="meta_startup_sequence_get_type"
           glib:type-struct="StartupSequenceClass">
      <source-position filename="src/meta/meta-startup-notification.h"
                       line="33"/>
      <method name="complete" c:identifier="meta_startup_sequence_complete">
        <source-position filename="src/meta/meta-startup-notification.h"
                         line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="seq" transfer-ownership="none">
            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_application_id"
              c:identifier="meta_startup_sequence_get_application_id"
              glib:get-property="application-id">
        <doc xml:space="preserve"
             filename="src/core/startup-notification.c"
             line="451">Get the application id of the startup sequence.</doc>
        <source-position filename="src/meta/meta-startup-notification.h"
                         line="64"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/startup-notification.c"
               line="457">the application id or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="seq" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/startup-notification.c"
                 line="453">a #MetaStartupSequence</doc>
            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_completed"
              c:identifier="meta_startup_sequence_get_completed">
        <source-position filename="src/meta/meta-startup-notification.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="seq" transfer-ownership="none">
            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="meta_startup_sequence_get_icon_name"
              glib:get-property="icon-name">
        <doc xml:space="preserve"
             filename="src/core/startup-notification.c"
             line="432">Get the icon name of the startup sequence.</doc>
        <source-position filename="src/meta/meta-startup-notification.h"
                         line="61"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/startup-notification.c"
               line="438">the icon name or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="seq" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/startup-notification.c"
                 line="434">a #MetaStartupSequence</doc>
            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id"
              c:identifier="meta_startup_sequence_get_id"
              glib:get-property="id">
        <source-position filename="src/meta/meta-startup-notification.h"
                         line="46"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="seq" transfer-ownership="none">
            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="meta_startup_sequence_get_name"
              glib:get-property="name">
        <source-position filename="src/meta/meta-startup-notification.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="seq" transfer-ownership="none">
            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_timestamp"
              c:identifier="meta_startup_sequence_get_timestamp"
              glib:get-property="timestamp">
        <source-position filename="src/meta/meta-startup-notification.h"
                         line="58"/>
        <return-value transfer-ownership="none">
          <type name="guint64" c:type="uint64_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="seq" transfer-ownership="none">
            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wmclass"
              c:identifier="meta_startup_sequence_get_wmclass"
              glib:get-property="wmclass">
        <doc xml:space="preserve"
             filename="src/core/startup-notification.c"
             line="470">Get the wmclass of the startup sequence.</doc>
        <source-position filename="src/meta/meta-startup-notification.h"
                         line="67"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/startup-notification.c"
               line="476">the wmclass or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="seq" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/startup-notification.c"
                 line="472">a #MetaStartupSequence</doc>
            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_workspace"
              c:identifier="meta_startup_sequence_get_workspace"
              glib:get-property="workspace">
        <source-position filename="src/meta/meta-startup-notification.h"
                         line="55"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="seq" transfer-ownership="none">
            <type name="StartupSequence" c:type="MetaStartupSequence*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="application-id"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_application_id"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="display"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Display"/>
      </property>
      <property name="icon-name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_icon_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="id"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_id"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="timestamp"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_timestamp"
                default-value="0">
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="wmclass"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_wmclass"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="workspace"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_workspace"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="complete" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="timeout" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="StartupSequenceClass"
            c:type="MetaStartupSequenceClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="StartupSequence">
      <source-position filename="src/meta/meta-startup-notification.h"
                       line="33"/>
    </record>
    <record name="Strut" c:type="MetaStrut">
      <source-position filename="src/meta/boxes.h" line="38"/>
      <field name="rect" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/boxes.h"
             line="30">#MtkRectangle the #MetaStrut is on</doc>
        <type name="Mtk.Rectangle" c:type="MtkRectangle"/>
      </field>
      <field name="side" writable="1">
        <doc xml:space="preserve"
             filename="src/meta/boxes.h"
             line="31">#MetaSide the #MetaStrut is on</doc>
        <type name="Side" c:type="MetaSide"/>
      </field>
    </record>
    <enumeration name="TabList"
                 glib:type-name="MetaTabList"
                 glib:get-type="meta_tab_list_get_type"
                 c:type="MetaTabList">
      <member name="normal"
              value="0"
              c:identifier="META_TAB_LIST_NORMAL"
              glib:nick="normal"
              glib:name="META_TAB_LIST_NORMAL">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="33">Normal windows</doc>
      </member>
      <member name="docks"
              value="1"
              c:identifier="META_TAB_LIST_DOCKS"
              glib:nick="docks"
              glib:name="META_TAB_LIST_DOCKS">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="34">Dock windows</doc>
      </member>
      <member name="group"
              value="2"
              c:identifier="META_TAB_LIST_GROUP"
              glib:nick="group"
              glib:name="META_TAB_LIST_GROUP">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="35">Groups</doc>
      </member>
      <member name="normal_all"
              value="3"
              c:identifier="META_TAB_LIST_NORMAL_ALL"
              glib:nick="normal-all"
              glib:name="META_TAB_LIST_NORMAL_ALL">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="36">All windows</doc>
      </member>
      <member name="normal_all_mru"
              value="4"
              c:identifier="META_TAB_LIST_NORMAL_ALL_MRU"
              glib:nick="normal-all-mru"
              glib:name="META_TAB_LIST_NORMAL_ALL_MRU">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="37">All windows in pure MRU order</doc>
      </member>
    </enumeration>
    <enumeration name="TabShowType"
                 glib:type-name="MetaTabShowType"
                 glib:get-type="meta_tab_show_type_get_type"
                 c:type="MetaTabShowType">
      <member name="icon"
              value="0"
              c:identifier="META_TAB_SHOW_ICON"
              glib:nick="icon"
              glib:name="META_TAB_SHOW_ICON">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="50">Show icon (Alt-Tab mode)</doc>
      </member>
      <member name="instantly"
              value="1"
              c:identifier="META_TAB_SHOW_INSTANTLY"
              glib:nick="instantly"
              glib:name="META_TAB_SHOW_INSTANTLY">
        <doc xml:space="preserve"
             filename="src/meta/display.h"
             line="51">Show instantly (Alt-Esc mode)</doc>
      </member>
    </enumeration>
    <constant name="VIRTUAL_CORE_KEYBOARD_ID"
              value="3"
              c:type="META_VIRTUAL_CORE_KEYBOARD_ID">
      <source-position filename="src/meta/common.h" line="41"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="VIRTUAL_CORE_POINTER_ID"
              value="2"
              c:type="META_VIRTUAL_CORE_POINTER_ID">
      <source-position filename="src/meta/common.h" line="40"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="WINDOW"
                    c:identifier="META_WINDOW"
                    introspectable="0">
      <source-position filename="src/meta/window.h" line="93"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WINDOW_CLASS"
                    c:identifier="META_WINDOW_CLASS"
                    introspectable="0">
      <source-position filename="src/meta/window.h" line="94"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WINDOW_GET_CLASS"
                    c:identifier="META_WINDOW_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/meta/window.h" line="97"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WORKSPACE"
                    c:identifier="META_WORKSPACE"
                    introspectable="0">
      <source-position filename="src/meta/workspace.h" line="27"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WORKSPACE_CLASS"
                    c:identifier="META_WORKSPACE_CLASS"
                    introspectable="0">
      <source-position filename="src/meta/workspace.h" line="28"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WORKSPACE_GET_CLASS"
                    c:identifier="META_WORKSPACE_GET_CLASS"
                    introspectable="0">
      <source-position filename="src/meta/workspace.h" line="31"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="WaylandClient"
           c:symbol-prefix="wayland_client"
           c:type="MetaWaylandClient"
           parent="GObject.Object"
           glib:type-name="MetaWaylandClient"
           glib:get-type="meta_wayland_client_get_type"
           glib:type-struct="WaylandClientClass">
      <doc xml:space="preserve"
           filename="src/wayland/meta-wayland-client.c"
           line="21">A class that allows to launch a trusted client and detect if an specific
Wayland window belongs to it.</doc>
      <source-position filename="src/meta/meta-wayland-client.h" line="31"/>
      <constructor name="new_subprocess"
                   c:identifier="meta_wayland_client_new_subprocess"
                   throws="1">
        <doc xml:space="preserve"
             filename="src/wayland/meta-wayland-client.c"
             line="199">Creates a new #MetaWaylandClient. The #GSubprocesslauncher and array of
arguments are used to launch a new process with the binary specified in the
first element of argv, and with the rest of elements as parameters.
It also sets up a new Wayland socket and sets the environment variable
WAYLAND_SOCKET to make the new process to use it.</doc>
        <source-position filename="src/meta/meta-wayland-client.h" line="34"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="src/wayland/meta-wayland-client.c"
               line="212">A #MetaWaylandClient or %NULL if %error is set. Free with
g_object_unref().</doc>
          <type name="WaylandClient" c:type="MetaWaylandClient*"/>
        </return-value>
        <parameters>
          <parameter name="context" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/wayland/meta-wayland-client.c"
                 line="201">a #MetaContext</doc>
            <type name="Context" c:type="MetaContext*"/>
          </parameter>
          <parameter name="launcher" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/wayland/meta-wayland-client.c"
                 line="202">a GSubprocessLauncher to use to launch the subprocess</doc>
            <type name="Gio.SubprocessLauncher" c:type="GSubprocessLauncher*"/>
          </parameter>
          <parameter name="argv" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/wayland/meta-wayland-client.c"
                 line="203">Command line arguments</doc>
            <array c:type="const char* const*">
              <type name="filename"/>
            </array>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_pid" c:identifier="meta_wayland_client_get_pid">
        <source-position filename="src/meta/meta-wayland-client.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="pid_t" c:type="pid_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="WaylandClient" c:type="MetaWaylandClient*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_subprocess"
              c:identifier="meta_wayland_client_get_subprocess">
        <doc xml:space="preserve"
             filename="src/wayland/meta-wayland-client.c"
             line="326">Get the #GSubprocess which was created by meta_wayland_client_new_subprocess.</doc>
        <source-position filename="src/meta/meta-wayland-client.h" line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/wayland/meta-wayland-client.c"
               line="332">The #GSubprocess</doc>
          <type name="Gio.Subprocess" c:type="GSubprocess*"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/wayland/meta-wayland-client.c"
                 line="328">a #MetaWaylandClient</doc>
            <type name="WaylandClient" c:type="MetaWaylandClient*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="owns_window"
              c:identifier="meta_wayland_client_owns_window">
        <doc xml:space="preserve"
             filename="src/wayland/meta-wayland-client.c"
             line="343">Checks whether @window belongs to the process launched from @client or not.
This only works under Wayland. If the window is an X11 window, an exception
will be triggered.</doc>
        <source-position filename="src/meta/meta-wayland-client.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/wayland/meta-wayland-client.c"
               line="352">TRUE if the window was created by this process; FALSE if not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/wayland/meta-wayland-client.c"
                 line="345">a #MetaWaylandClient</doc>
            <type name="WaylandClient" c:type="MetaWaylandClient*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/wayland/meta-wayland-client.c"
                 line="346">a MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="client-destroyed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="WaylandClientClass"
            c:type="MetaWaylandClientClass"
            glib:is-gtype-struct-for="WaylandClient">
      <source-position filename="src/meta/meta-wayland-client.h" line="31"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="WaylandCompositor"
           c:symbol-prefix="wayland_compositor"
           c:type="MetaWaylandCompositor"
           parent="GObject.Object"
           glib:type-name="MetaWaylandCompositor"
           glib:get-type="meta_wayland_compositor_get_type"
           glib:type-struct="WaylandCompositorClass">
      <source-position filename="src/meta/meta-wayland-compositor.h"
                       line="29"/>
      <method name="get_wayland_display"
              c:identifier="meta_wayland_compositor_get_wayland_display">
        <source-position filename="src/meta/meta-wayland-compositor.h"
                         line="38"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/wayland/meta-wayland.c"
               line="1264">the Wayland display object</doc>
          <type name="gpointer" c:type="wl_display*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/wayland/meta-wayland.c"
                 line="1262">The #MetaWaylandCompositor</doc>
            <type name="WaylandCompositor" c:type="MetaWaylandCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <glib:signal name="prepare-shutdown" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="WaylandCompositorClass"
            c:type="MetaWaylandCompositorClass"
            glib:is-gtype-struct-for="WaylandCompositor">
      <source-position filename="src/meta/meta-wayland-compositor.h"
                       line="29"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="WaylandSurface"
           c:symbol-prefix="wayland_surface"
           c:type="MetaWaylandSurface"
           parent="GObject.Object"
           glib:type-name="MetaWaylandSurface"
           glib:get-type="meta_wayland_surface_get_type"
           glib:type-struct="WaylandSurfaceClass">
      <source-position filename="src/meta/meta-wayland-surface.h" line="27"/>
      <method name="get_window"
              c:identifier="meta_wayland_surface_get_window"
              glib:get-property="window">
        <doc xml:space="preserve"
             filename="src/wayland/meta-wayland-surface.c"
             line="2328">Get the #MetaWindow associated with this wayland surface.</doc>
        <source-position filename="src/meta/meta-wayland-surface.h" line="33"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/wayland/meta-wayland-surface.c"
               line="2334">a #MetaWindow</doc>
          <type name="Window" c:type="MetaWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="surface" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/wayland/meta-wayland-surface.c"
                 line="2330">a #MetaWaylandSurface</doc>
            <type name="WaylandSurface" c:type="MetaWaylandSurface*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="main-monitor" writable="1" transfer-ownership="none">
        <type name="LogicalMonitor"/>
      </property>
      <property name="scanout-candidate"
                introspectable="0"
                transfer-ownership="none">
        <type/>
      </property>
      <property name="window" transfer-ownership="none" getter="get_window">
        <type name="Window"/>
      </property>
      <glib:signal name="actor-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="configure" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="destroy" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="geometry-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="pre-state-applied" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="shortcuts-inhibited" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="shortcuts-restored" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="unmapped" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="WaylandSurfaceClass"
            c:type="MetaWaylandSurfaceClass"
            glib:is-gtype-struct-for="WaylandSurface">
      <source-position filename="src/meta/meta-wayland-surface.h" line="27"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="Window"
           c:symbol-prefix="window"
           c:type="MetaWindow"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="MetaWindow"
           glib:get-type="meta_window_get_type"
           glib:type-struct="WindowClass">
      <doc xml:space="preserve"
           filename="src/core/window.c"
           line="23">A display-agnostic abstraction for a window.

#MetaWindow is the core abstraction in Mutter of a window. It has the
properties you'd expect, such as a title, whether it's fullscreen,
has decorations, etc.

Since a lot of different kinds of windows exist, each window also a
[enum@Meta.WindowType] which denotes which kind of window we're exactly dealing
with. For example, one expects slightly different behaviour from a dialog
than a "normal" window. The type of a window can be queried with
[method@Meta.Window.get_window_type].

Common API for windows include:

- Minimizing: [method@Meta.Window.minimize] / [method@Meta.Window.unminimize]
- Maximizing: [method@Meta.Window.maximize] / [method@Meta.Window.unmaximize]
- Fullscreen: [method@Meta.Window.make_fullscreen] / [method@Meta.Window.unmake_fullscreen]
              / [method@Meta.Window.is_fullscreen]

Each #MetaWindow is part of either one or all [class@Meta.Workspace]s of the
desktop. You can activate a window on a certain workspace using
[method@Meta.Window.activate_with_workspace], and query on which workspace it is
located using [method@Meta.Window.located_on_workspace]. The workspace it is part
of can be obtained using [method@Meta.Window.get_workspace].

Each display protocol should make a subclass to be compatible with that
protocols' specifics, for example #MetaWindowX11 and #MetaWindowWayland.
This is independent of the protocol that the client uses, which is modeled
using the [enum@Meta.WindowClientType] enum.

To integrate within the Clutter scene graph, which deals with the actual
rendering, each #MetaWindow will be part of a [class@Meta.WindowActor].</doc>
      <source-position filename="src/meta/window.h" line="101"/>
      <implements name="Gio.Initable"/>
      <method name="activate" c:identifier="meta_window_activate">
        <source-position filename="src/meta/window.h" line="163"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="current_time" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="activate_with_workspace"
              c:identifier="meta_window_activate_with_workspace">
        <source-position filename="src/meta/window.h" line="166"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="current_time" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="workspace" transfer-ownership="none">
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </parameter>
        </parameters>
      </method>
      <method name="allows_move" c:identifier="meta_window_allows_move">
        <source-position filename="src/meta/window.h" line="416"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="allows_resize" c:identifier="meta_window_allows_resize">
        <source-position filename="src/meta/window.h" line="419"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="appears_focused"
              c:identifier="meta_window_appears_focused"
              glib:get-property="appears-focused">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6661">Determines if the window should be drawn with a focused appearance.

This is true for focused windows but also true for windows with a focused modal
dialog attached.</doc>
        <source-position filename="src/meta/window.h" line="110"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6670">%TRUE if the window should be drawn with a focused frame</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6663">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="begin_grab_op" c:identifier="meta_window_begin_grab_op">
        <source-position filename="src/meta/window.h" line="394"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="op" transfer-ownership="none">
            <type name="GrabOp" c:type="MetaGrabOp"/>
          </parameter>
          <parameter name="sprite"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Clutter.Sprite" c:type="ClutterSprite*"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="pos_hint"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Graphene.Point" c:type="graphene_point_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="can_close" c:identifier="meta_window_can_close">
        <source-position filename="src/meta/window.h" line="407"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="can_maximize" c:identifier="meta_window_can_maximize">
        <source-position filename="src/meta/window.h" line="401"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="can_minimize" c:identifier="meta_window_can_minimize">
        <source-position filename="src/meta/window.h" line="404"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="change_workspace"
              c:identifier="meta_window_change_workspace">
        <source-position filename="src/meta/window.h" line="230"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </parameter>
        </parameters>
      </method>
      <method name="change_workspace_by_index"
              c:identifier="meta_window_change_workspace_by_index">
        <source-position filename="src/meta/window.h" line="225"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="space_index" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="append" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="check_alive" c:identifier="meta_window_check_alive">
        <source-position filename="src/meta/window.h" line="377"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="client_rect_to_frame_rect"
              c:identifier="meta_window_client_rect_to_frame_rect">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="4680">Converts a desired bounds of the client window into the corresponding bounds
of the window frame (excluding invisible borders and client side shadows.)</doc>
        <source-position filename="src/meta/window.h" line="131"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4682">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="client_rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4683">client rectangle in root coordinates</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
          <parameter name="frame_rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4684">location to store the computed corresponding frame bounds.</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete" c:identifier="meta_window_delete">
        <source-position filename="src/meta/window.h" line="321"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_root_ancestor"
              c:identifier="meta_window_find_root_ancestor">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="5339">Follow the chain of parents of @window, skipping transient windows,
and return the "root" window which has no non-transient parent.</doc>
        <source-position filename="src/meta/window.h" line="246"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="5346">The root ancestor window</doc>
          <type name="Window" c:type="MetaWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="5341">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="focus" c:identifier="meta_window_focus">
        <source-position filename="src/meta/window.h" line="373"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach_ancestor"
              c:identifier="meta_window_foreach_ancestor">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6262">If @window is transient, call @func with the window for which it's transient,
repeatedly until either we find a non-transient window, or @func returns %FALSE.</doc>
        <source-position filename="src/meta/window.h" line="261"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6264">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6265">Called for each window which is a transient parent of @window</doc>
            <type name="WindowForeachFunc" c:type="MetaWindowForeachFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6266">User data</doc>
            <type name="gpointer" c:type="void*"/>
          </parameter>
        </parameters>
      </method>
      <method name="foreach_transient"
              c:identifier="meta_window_foreach_transient">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6223">Call @func for every window which is either transient for @window, or is
a transient of a window which is in turn transient for @window.
The order of window enumeration is not defined.

Iteration will stop if @func at any point returns %FALSE.</doc>
        <source-position filename="src/meta/window.h" line="256"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6225">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6226">Called for each window which is a transient of @window (transitively)</doc>
            <type name="WindowForeachFunc" c:type="MetaWindowForeachFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6227">User data</doc>
            <type name="gpointer" c:type="void*"/>
          </parameter>
        </parameters>
      </method>
      <method name="frame_rect_to_client_rect"
              c:identifier="meta_window_frame_rect_to_client_rect">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="4732">Converts a desired frame bounds for a window into the bounds of the client
window.</doc>
        <source-position filename="src/meta/window.h" line="136"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4734">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="frame_rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4735">desired frame bounds for the window</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
          <parameter name="client_rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4736">location to store the computed corresponding client rectangle.</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_buffer_rect"
              c:identifier="meta_window_get_buffer_rect">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="4660">Gets the rectangle that the pixmap or buffer of @window occupies.

For X11 windows, this is the server-side geometry of the toplevel
window.

For Wayland windows, this is the bounding rectangle of the attached
buffer.</doc>
        <source-position filename="src/meta/window.h" line="119"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4662">a #MetaWindow</doc>
            <type name="Window" c:type="const MetaWindow*"/>
          </instance-parameter>
          <parameter name="rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4663">pointer to an allocated #MtkRectangle</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_client_content_rect"
              c:identifier="meta_window_get_client_content_rect">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="8511">Gets the client rectangle that ATSPI window coordinates
are relative to.</doc>
        <source-position filename="src/meta/window.h" line="127"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="8513">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="8514">pointer to an allocated #MtkRectangle</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_client_type"
              c:identifier="meta_window_get_client_type">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="7970">Returns the #MetaWindowClientType of the window.</doc>
        <source-position filename="src/meta/window.h" line="425"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="7976">The root ancestor window</doc>
          <type name="WindowClientType" c:type="MetaWindowClientType"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="7972">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_compositor_private"
              c:identifier="meta_window_get_compositor_private">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6912">Gets the compositor's wrapper object for @window.</doc>
        <source-position filename="src/meta/window.h" line="234"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6918">the wrapper object.</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6914">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="meta_window_get_description">
        <source-position filename="src/meta/window.h" line="171"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_display"
              c:identifier="meta_window_get_display"
              glib:get-property="display">
        <source-position filename="src/meta/window.h" line="141"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6718">The display for @window</doc>
          <type name="Display" c:type="MetaDisplay*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6716">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_frame_rect" c:identifier="meta_window_get_frame_rect">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="4776">Gets the rectangle that bounds @window that is what the user thinks of
as the edge of the window.

This doesn't include any extra reactive area that we or the client
adds to the window, or any area that the client adds to draw a client-side shadow.</doc>
        <source-position filename="src/meta/window.h" line="123"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4778">a #MetaWindow</doc>
            <type name="Window" c:type="const MetaWindow*"/>
          </instance-parameter>
          <parameter name="rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4779">pointer to an allocated #MtkRectangle</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_frame_type" c:identifier="meta_window_get_frame_type">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="7151">Gets the type of window decorations that should be used for this window.</doc>
        <source-position filename="src/meta/window.h" line="346"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="7157">the frame type</doc>
          <type name="FrameType" c:type="MetaFrameType"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="7153">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gtk_app_menu_object_path"
              c:identifier="meta_window_get_gtk_app_menu_object_path"
              glib:get-property="gtk-app-menu-object-path">
        <source-position filename="src/meta/window.h" line="201"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6892">the object path</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6890">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gtk_application_id"
              c:identifier="meta_window_get_gtk_application_id"
              glib:get-property="gtk-application-id">
        <source-position filename="src/meta/window.h" line="189"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6844">the application ID</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6842">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gtk_application_object_path"
              c:identifier="meta_window_get_gtk_application_object_path"
              glib:get-property="gtk-application-object-path">
        <source-position filename="src/meta/window.h" line="195"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6868">the object path</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6866">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gtk_menubar_object_path"
              c:identifier="meta_window_get_gtk_menubar_object_path"
              glib:get-property="gtk-menubar-object-path">
        <source-position filename="src/meta/window.h" line="204"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6904">the object path</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6902">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gtk_theme_variant"
              c:identifier="meta_window_get_gtk_theme_variant">
        <source-position filename="src/meta/window.h" line="186"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6832">the theme variant or %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6830">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gtk_unique_bus_name"
              c:identifier="meta_window_get_gtk_unique_bus_name"
              glib:get-property="gtk-unique-bus-name">
        <source-position filename="src/meta/window.h" line="192"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6856">the unique name</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6854">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gtk_window_object_path"
              c:identifier="meta_window_get_gtk_window_object_path"
              glib:get-property="gtk-window-object-path">
        <source-position filename="src/meta/window.h" line="198"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6880">the object path</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6878">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_geometry"
              c:identifier="meta_window_get_icon_geometry">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="5657">Gets the location of the icon corresponding to the window.

The location will be provided set by the task bar or other user interface
element displaying the icon, and is relative to the root window.</doc>
        <source-position filename="src/meta/window.h" line="281"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="5667">%TRUE if the icon geometry was successfully retrieved.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="5659">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="5660">rectangle into which to store the returned geometry.</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="meta_window_get_id">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="7956">Returns the window id associated with window.</doc>
        <source-position filename="src/meta/window.h" line="422"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="7962">The window id</doc>
          <type name="guint64" c:type="uint64_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="7958">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_layer" c:identifier="meta_window_get_layer">
        <source-position filename="src/meta/window.h" line="243"/>
        <return-value transfer-ownership="none">
          <type name="StackLayer" c:type="MetaStackLayer"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_maximize_flags"
              c:identifier="meta_window_get_maximize_flags">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="2979">Gets the current maximization state of the window, as combination
of the %META_MAXIMIZE_HORIZONTAL and %META_MAXIMIZE_VERTICAL flags;</doc>
        <source-position filename="src/meta/window.h" line="454"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="2986">current maximization state</doc>
          <type name="MaximizeFlags" c:type="MetaMaximizeFlags"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="2981">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_monitor" c:identifier="meta_window_get_monitor">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="3972">Gets index of the monitor that this window is on.</doc>
        <source-position filename="src/meta/window.h" line="150"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="3978">The index of the monitor in the screens monitor list, or -1
if the window has been recently unmanaged and does not have a monitor.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="3974">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mutter_hints"
              c:identifier="meta_window_get_mutter_hints"
              glib:get-property="mutter-hints">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="7125">Gets the current value of the _MUTTER_HINTS property.

The purpose of the hints is to allow fine-tuning of the Window Manager and
Compositor behaviour on per-window basis, and is intended primarily for
hints that are plugin-specific.

The property is a list of colon-separated key=value pairs. The key names for
any plugin-specific hints must be suitably namespaced to allow for shared
use; 'mutter-' key prefix is reserved for internal use, and must not be used
by plugins.</doc>
        <source-position filename="src/meta/window.h" line="343"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="7140">the _MUTTER_HINTS string, or %NULL if no
hints are set.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="7127">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pid" c:identifier="meta_window_get_pid">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="7021">Returns the pid of the process that created this window, if available
to the windowing system.

Note that the value returned by this is vulnerable to spoofing attacks
by the client.</doc>
        <source-position filename="src/meta/window.h" line="331"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="7031">the pid, or 0 if not known.</doc>
          <type name="pid_t" c:type="pid_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="7023">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_role" c:identifier="meta_window_get_role">
        <source-position filename="src/meta/window.h" line="240"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sandboxed_app_id"
              c:identifier="meta_window_get_sandboxed_app_id">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6811">Gets an unique id for a sandboxed app (currently flatpaks and snaps are
supported).</doc>
        <source-position filename="src/meta/window.h" line="183"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6818">the sandboxed application ID or %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6813">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stable_sequence"
              c:identifier="meta_window_get_stable_sequence">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6554">The stable sequence number is a monotonicially increasing
unique integer assigned to each #MetaWindow upon creation.

This number can be useful for sorting windows in a stable
fashion.</doc>
        <source-position filename="src/meta/window.h" line="325"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6564">Internal sequence number for this window</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6556">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_startup_id" c:identifier="meta_window_get_startup_id">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="4819">Gets the startup id of the given #MetaWindow</doc>
        <source-position filename="src/meta/window.h" line="222"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="4825">the startup id</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4821">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tag"
              c:identifier="meta_window_get_tag"
              glib:get-property="tag">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="8603">Get a tag associated to the window.
Under wayland the tag can be set using the toplevel tag protocol,
and under x11 it falls back to using `NET_WM_WINDOW_TAG` atom.</doc>
        <source-position filename="src/meta/window.h" line="441"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="8611">An associated toplevel tag</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="8605">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tile_match" c:identifier="meta_window_get_tile_match">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="7304">Returns the matching tiled window on the same monitor as @window. This is
the topmost tiled window in a complementary tile mode that is:

 - on the same monitor;
 - on the same workspace;
 - spanning the remaining monitor width;
 - there is no 3rd window stacked between both tiled windows that's
   partially visible in the common edge.</doc>
        <source-position filename="src/meta/window.h" line="349"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="7317">the matching tiled window or
%NULL if it doesn't exist.</doc>
          <type name="Window" c:type="MetaWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="7306">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="meta_window_get_title"
              glib:get-property="title">
        <source-position filename="src/meta/window.h" line="315"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6950">the current title of the window.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6948">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_transient_for"
              c:identifier="meta_window_get_transient_for">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6999">Returns the #MetaWindow for the window that is pointed to by the
WM_TRANSIENT_FOR hint on this window (see XGetTransientForHint()
or XSetTransientForHint()). Mutter keeps transient windows above their
parents. A typical usage of this hint is for a dialog that wants to stay
above its associated window.</doc>
        <source-position filename="src/meta/window.h" line="318"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="7009">the window this window is transient for,
or %NULL if the WM_TRANSIENT_FOR hint is unset or does not point to a
toplevel window that Mutter knows about.</doc>
          <type name="Window" c:type="MetaWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="7001">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_time"
              c:identifier="meta_window_get_user_time"
              glib:get-property="user-time">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6498">The user time represents a timestamp for the last time the user
interacted with this window.

Note this property is only available for non-override-redirect windows.

The property is set by Mutter initially upon window creation,
and updated thereafter on input events (key and button presses) seen by Mutter,
client updates to the _NET_WM_USER_TIME property (if later than the current time)
and when focusing the window.</doc>
        <source-position filename="src/meta/window.h" line="328"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6512">The last time the user interacted with this window.</doc>
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6500">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_window_type"
              c:identifier="meta_window_get_window_type"
              glib:get-property="window-type">
        <source-position filename="src/meta/window.h" line="144"/>
        <return-value transfer-ownership="none">
          <type name="WindowType" c:type="MetaWindowType"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wm_class"
              c:identifier="meta_window_get_wm_class"
              glib:get-property="wm-class">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6775">Return the current value of the name part of `WM_CLASS` X property.</doc>
        <source-position filename="src/meta/window.h" line="174"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6781">the current value of the name part of `WM_CLASS` X
property</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6777">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wm_class_instance"
              c:identifier="meta_window_get_wm_class_instance">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6793">Return the current value of the instance part of `WM_CLASS` X property.</doc>
        <source-position filename="src/meta/window.h" line="177"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6799">the current value of the instance part of `WM_CLASS` X
property.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6795">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_work_area_all_monitors"
              c:identifier="meta_window_get_work_area_all_monitors">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6146">Get the work area for all monitors for @window.</doc>
        <source-position filename="src/meta/window.h" line="390"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6148">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="area"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6149">a location to store the work area</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_work_area_current_monitor"
              c:identifier="meta_window_get_work_area_current_monitor">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6105">Get the work area for the monitor @window is currently on.</doc>
        <source-position filename="src/meta/window.h" line="381"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6107">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="area"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6108">a location to store the work area</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_work_area_for_monitor"
              c:identifier="meta_window_get_work_area_for_monitor">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6119">Get the work area for @window, given the monitor index
@which_monitor.</doc>
        <source-position filename="src/meta/window.h" line="385"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6121">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="which_monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6122">a moniotr to get the work area for</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="area"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6123">a location to store the work area</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_workspace" c:identifier="meta_window_get_workspace">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6732">Gets the [class@Meta.Workspace] that the window is currently displayed on.

If the window is on all workspaces, returns the currently active
workspace.</doc>
        <source-position filename="src/meta/window.h" line="147"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6741">the #MetaWorkspace for the window</doc>
          <type name="Workspace" c:type="MetaWorkspace*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6734">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_attached_dialogs"
              c:identifier="meta_window_has_attached_dialogs">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="7253">Tests if @window has any transients attached to it.

If the `attach_modal_dialogs` option is not enabled, this will
always return %FALSE.</doc>
        <source-position filename="src/meta/window.h" line="340"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="7262">whether @window has attached transients</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="7255">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_focus" c:identifier="meta_window_has_focus">
        <source-position filename="src/meta/window.h" line="107"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_pointer" c:identifier="meta_window_has_pointer">
        <source-position filename="src/meta/window.h" line="428"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hide_from_window_list"
              c:identifier="meta_window_hide_from_window_list">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="8621">Hides this window from any window list, like taskbars, pagers...</doc>
        <source-position filename="src/meta/window.h" line="448"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="8623">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_above"
              c:identifier="meta_window_is_above"
              glib:get-property="above">
        <source-position filename="src/meta/window.h" line="413"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_always_on_all_workspaces"
              c:identifier="meta_window_is_always_on_all_workspaces">
        <source-position filename="src/meta/window.h" line="410"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_ancestor_of_transient"
              c:identifier="meta_window_is_ancestor_of_transient">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6310">The function determines whether @window is an ancestor of @transient; it does
so by traversing the @transient's ancestors until it either locates @window
or reaches an ancestor that is not transient.</doc>
        <source-position filename="src/meta/window.h" line="249"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6319">%TRUE if window is an ancestor of transient.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6312">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="transient" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6313">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_attached_dialog"
              c:identifier="meta_window_is_attached_dialog">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="7221">Tests if @window should be attached to its parent window.

If the `attach_modal_dialogs` option is not enabled, this will
always return %FALSE.</doc>
        <source-position filename="src/meta/window.h" line="337"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="7230">whether @window should be attached to its parent</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="7223">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_fullscreen"
              c:identifier="meta_window_is_fullscreen"
              glib:get-property="fullscreen">
        <source-position filename="src/meta/window.h" line="269"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="3017">%TRUE if the window is currently fullscreen</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="3015">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_hidden" c:identifier="meta_window_is_hidden">
        <source-position filename="src/meta/window.h" line="160"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_maximized" c:identifier="meta_window_is_maximized">
        <source-position filename="src/meta/window.h" line="266"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="3005">%TRUE if the window is maximized vertically and horizontally.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="3003">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_monitor_sized"
              c:identifier="meta_window_is_monitor_sized">
        <source-position filename="src/meta/window.h" line="275"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="3052">%TRUE if the window is occupies an entire monitor or
              the whole screen.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="3050">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_on_all_workspaces"
              c:identifier="meta_window_is_on_all_workspaces"
              glib:get-property="on-all-workspaces">
        <source-position filename="src/meta/window.h" line="153"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_on_primary_monitor"
              c:identifier="meta_window_is_on_primary_monitor">
        <source-position filename="src/meta/window.h" line="278"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="3086">%TRUE if the window is on the primary monitor</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="3084">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_override_redirect"
              c:identifier="meta_window_is_override_redirect">
        <source-position filename="src/meta/window.h" line="113"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6688">%TRUE if this window isn't managed by mutter; it will
control its own positioning and mutter won't draw decorations
among other things.  In X terminology this is "override redirect".</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6686">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_remote" c:identifier="meta_window_is_remote">
        <source-position filename="src/meta/window.h" line="334"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="7116">%TRUE if this window originates from a host
different from the one running mutter.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="7114">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_screen_sized"
              c:identifier="meta_window_is_screen_sized">
        <source-position filename="src/meta/window.h" line="272"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="3029">%TRUE if the window is occupies the
              the whole screen (all monitors).</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="3027">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_skip_taskbar"
              c:identifier="meta_window_is_skip_taskbar"
              glib:get-property="skip-taskbar">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="6698">Gets whether this window should be ignored by task lists.</doc>
        <source-position filename="src/meta/window.h" line="116"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="6704">%TRUE if the skip bar hint is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="6700">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="kill" c:identifier="meta_window_kill">
        <source-position filename="src/meta/window.h" line="370"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="located_on_workspace"
              c:identifier="meta_window_located_on_workspace">
        <source-position filename="src/meta/window.h" line="156"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="1713">whether @window is displayed on @workspace, or whether it
will be displayed on all workspaces.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="1710">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="1711">a #MetaWorkspace</doc>
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lower" c:identifier="meta_window_lower">
        <source-position filename="src/meta/window.h" line="304"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="lower_with_transients"
              c:identifier="meta_window_lower_with_transients">
        <source-position filename="src/meta/window.h" line="307"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="uint32_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="make_above" c:identifier="meta_window_make_above">
        <source-position filename="src/meta/window.h" line="358"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="make_fullscreen"
              c:identifier="meta_window_make_fullscreen">
        <source-position filename="src/meta/window.h" line="352"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="maximize" c:identifier="meta_window_maximize">
        <source-position filename="src/meta/window.h" line="289"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="minimize" c:identifier="meta_window_minimize">
        <source-position filename="src/meta/window.h" line="295"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="move_frame" c:identifier="meta_window_move_frame">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="4442">Moves the window to the desired location on window's assigned
workspace, using the northwest edge of the frame as the reference,
instead of the actual window's origin, but only if a frame is present.

Otherwise, acts identically to meta_window_move().</doc>
        <source-position filename="src/meta/window.h" line="207"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4444">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="user_op" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4445">bool to indicate whether or not this is a user operation</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="root_x_nw" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4446">desired x pos</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="root_y_nw" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4447">desired y pos</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_resize_frame"
              c:identifier="meta_window_move_resize_frame">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="4541">Resizes the window so that its outer bounds (including frame)
fit within the given rect</doc>
        <source-position filename="src/meta/window.h" line="210"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4543">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="user_op" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4544">bool to indicate whether or not this is a user operation</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="root_x_nw" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4545">new x</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="root_y_nw" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4546">new y</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="w" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4547">desired width</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="h" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4548">desired height</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="move_to_monitor"
              c:identifier="meta_window_move_to_monitor">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="4574">Moves the window to the monitor with index @monitor, keeping
the relative position of the window's top left corner.</doc>
        <source-position filename="src/meta/window.h" line="213"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4576">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="4577">desired monitor index</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="protocol_to_stage_rect"
              c:identifier="meta_window_protocol_to_stage_rect">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="8458">Transform the coordinates from protocol coordinates to coordinates expected
by the stage and internal window management logic.</doc>
        <source-position filename="src/meta/window.h" line="436"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="8460">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="protocol_rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="8461">rectangle in protocol coordinate space</doc>
            <type name="Mtk.Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
          <parameter name="stage_rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="8462">rect in stage coordinate space</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="raise" c:identifier="meta_window_raise">
        <source-position filename="src/meta/window.h" line="301"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="raise_and_make_recent_on_workspace"
              c:identifier="meta_window_raise_and_make_recent_on_workspace">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="5397">Raises a window and marks it as the most recently used window on the
workspace @target_workspace. If the window exists on all workspaces, it will
become the most recently used sticky window on all other workspaces. This
ensures proper tracking among windows on all workspaces while not overriding
MRU for other windows.</doc>
        <source-position filename="src/meta/window.h" line="311"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="5399">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="5400">the #MetaWorkspace to raise and make it most recent on</doc>
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_compositor_private"
              c:identifier="meta_window_set_compositor_private">
        <source-position filename="src/meta/window.h" line="237"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="priv" transfer-ownership="none">
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_demands_attention"
              c:identifier="meta_window_set_demands_attention">
        <source-position filename="src/meta/window.h" line="216"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_icon_geometry"
              c:identifier="meta_window_set_icon_geometry">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="5686">Sets or unsets the location of the icon corresponding to the window.

If set, the location should correspond to a dock, task bar or other user
interface element displaying the icon, and is relative to the root window.</doc>
        <source-position filename="src/meta/window.h" line="285"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="5688">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="rect"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="5689">rectangle with the desired geometry or %NULL.</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_maximize_flags"
              c:identifier="meta_window_set_maximize_flags">
        <source-position filename="src/meta/window.h" line="457"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="directions" transfer-ownership="none">
            <type name="MaximizeFlags" c:type="MetaMaximizeFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_type" c:identifier="meta_window_set_type">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="5784">Set the window type</doc>
        <source-position filename="src/meta/window.h" line="444"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="5786">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="5787">The #MetaWindowType</doc>
            <type name="WindowType" c:type="MetaWindowType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_unmaximize_flags"
              c:identifier="meta_window_set_unmaximize_flags">
        <source-position filename="src/meta/window.h" line="461"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="directions" transfer-ownership="none">
            <type name="MaximizeFlags" c:type="MetaMaximizeFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_in_window_list"
              c:identifier="meta_window_show_in_window_list">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="8639">Shows again this window in window lists, like taskbars, pagers...</doc>
        <source-position filename="src/meta/window.h" line="451"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="8641">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="showing_on_its_workspace"
              c:identifier="meta_window_showing_on_its_workspace">
        <source-position filename="src/meta/window.h" line="180"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/window.c"
               line="1752">%TRUE if window would be visible, if its workspace was current</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="1750">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="stage_to_protocol_rect"
              c:identifier="meta_window_stage_to_protocol_rect">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="8408">Transform the coordinates from stage coordinates to protocol coordinates</doc>
        <source-position filename="src/meta/window.h" line="431"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="8410">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
          <parameter name="stage_rect" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="8411">x #MtkRectangle in stage coordinate space</doc>
            <type name="Mtk.Rectangle" c:type="const MtkRectangle*"/>
          </parameter>
          <parameter name="protocol_rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="8412">x #MtkRectangle in protocol coordinate space</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="stick" c:identifier="meta_window_stick">
        <source-position filename="src/meta/window.h" line="364"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unmake_above" c:identifier="meta_window_unmake_above">
        <source-position filename="src/meta/window.h" line="361"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unmake_fullscreen"
              c:identifier="meta_window_unmake_fullscreen">
        <source-position filename="src/meta/window.h" line="355"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unmaximize" c:identifier="meta_window_unmaximize">
        <source-position filename="src/meta/window.h" line="292"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unminimize" c:identifier="meta_window_unminimize">
        <source-position filename="src/meta/window.h" line="298"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unset_demands_attention"
              c:identifier="meta_window_unset_demands_attention">
        <source-position filename="src/meta/window.h" line="219"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unstick" c:identifier="meta_window_unstick">
        <source-position filename="src/meta/window.h" line="367"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="x11_get_group"
              c:identifier="meta_window_x11_get_group"
              introspectable="0">
        <source-position filename="src/meta/meta-x11-group.h" line="33"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/x11/window-x11.c"
               line="4732">the #MetaGroup of the window</doc>
          <type name="Group" c:type="MetaGroup*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/x11/window-x11.c"
                 line="4730">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="above"
                transfer-ownership="none"
                getter="is_above"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="appears-focused"
                transfer-ownership="none"
                getter="appears_focused"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="decorated"
                transfer-ownership="none"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="demands-attention"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="display"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_display">
        <type name="Display"/>
      </property>
      <property name="effect"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="4">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="fullscreen"
                transfer-ownership="none"
                getter="is_fullscreen"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="gtk-app-menu-object-path"
                transfer-ownership="none"
                getter="get_gtk_app_menu_object_path"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="gtk-application-id"
                transfer-ownership="none"
                getter="get_gtk_application_id"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="gtk-application-object-path"
                transfer-ownership="none"
                getter="get_gtk_application_object_path"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="gtk-menubar-object-path"
                transfer-ownership="none"
                getter="get_gtk_menubar_object_path"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="gtk-unique-bus-name"
                transfer-ownership="none"
                getter="get_gtk_unique_bus_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="gtk-window-object-path"
                transfer-ownership="none"
                getter="get_gtk_window_object_path"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="is-alive" transfer-ownership="none" default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="main-monitor" transfer-ownership="none">
        <type name="LogicalMonitor"/>
      </property>
      <property name="mapped" transfer-ownership="none" default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="maximized-horizontally"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="maximized-vertically"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="minimized"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="mutter-hints"
                transfer-ownership="none"
                getter="get_mutter_hints"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="on-all-workspaces"
                transfer-ownership="none"
                getter="is_on_all_workspaces"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="resizeable"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="skip-taskbar"
                transfer-ownership="none"
                getter="is_skip_taskbar"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="suspend-state"
                introspectable="0"
                transfer-ownership="none"
                default-value="META_WINDOW_SUSPEND_STATE_ACTIVE">
        <type/>
      </property>
      <property name="tag"
                transfer-ownership="none"
                getter="get_tag"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="title"
                transfer-ownership="none"
                getter="get_title"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="urgent" transfer-ownership="none" default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="user-time"
                transfer-ownership="none"
                getter="get_user_time"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="window-type"
                transfer-ownership="none"
                getter="get_window_type"
                default-value="META_WINDOW_NORMAL">
        <type name="WindowType"/>
      </property>
      <property name="wm-class"
                transfer-ownership="none"
                getter="get_wm_class"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="configure" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="window_config" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/window.c"
                 line="817">a #MetaWindowConfig</doc>
            <type name="WindowConfig"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="focus" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="highest-scale-monitor-changed" when="last">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="799">This is emitted when the monitor with the highest scale
intersecting the window changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="position-changed" when="last">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="747">This is emitted when the position of a window might
have changed.

Specifically, this is emitted when the position of
the toplevel window has changed, or when the position
of the client window has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="raised" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="shown" when="last">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="766">This is emitted after a window has been shown.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="size-changed" when="last">
        <doc xml:space="preserve"
             filename="src/core/window.c"
             line="780">This is emitted when the size of a window might
have changed.

Specifically, this is emitted when the size of
the toplevel window has changed, or when the
size of the client window has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="unmanaged" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="unmanaging" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="workspace-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <class name="WindowActor"
           c:symbol-prefix="window_actor"
           c:type="MetaWindowActor"
           parent="Clutter.Actor"
           abstract="1"
           glib:type-name="MetaWindowActor"
           glib:get-type="meta_window_actor_get_type"
           glib:type-struct="WindowActorClass">
      <doc xml:space="preserve"
           filename="src/compositor/meta-window-actor.c"
           line="3">An actor representing a top-level window in the scene graph

#MetaWindowActor is a #ClutterActor that adds a notion of a window to the
Clutter scene graph. It contains a #MetaWindow which provides the windowing
API, and the #MetaCompositor that handles it.  For the actual content of the
window, it contains a #MetaSurfaceActor.

#MetaWindowActor takes care of the rendering features you need for your
window. For example, it will take the windows' requested opacity and use
that for clutter_actor_set_opacity(). Furthermore, it will also draw a
shadow around the window (using #MetaShadow) and deal with synchronization
between events of the window and the actual render loop. See
MetaWindowActor::first-frame for an example of the latter.</doc>
      <source-position filename="src/meta/meta-window-actor.h" line="32"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <method name="freeze" c:identifier="meta_window_actor_freeze">
        <doc xml:space="preserve"
             filename="src/compositor/meta-window-actor.c"
             line="361">Freezes the #MetaWindowActor, which inhibits updates and geometry
changes of the window. This property is refcounted, so make sure
to call meta_window_actor_thaw() the exact same amount of times
as this function to allow updates again.</doc>
        <source-position filename="src/meta/meta-window-actor.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-window-actor.c"
                 line="363">The #MetaWindowActor</doc>
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_image" c:identifier="meta_window_actor_get_image">
        <doc xml:space="preserve"
             filename="src/compositor/meta-window-actor.c"
             line="1719">Flattens the layers of @self into one ARGB32 image by alpha blending
the images, and returns the flattened image.</doc>
        <source-position filename="src/meta/meta-window-actor.h" line="50"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/compositor/meta-window-actor.c"
               line="1729">a new cairo surface to be freed with
cairo_surface_destroy().</doc>
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-window-actor.c"
                 line="1721">A #MetaWindowActor</doc>
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </instance-parameter>
          <parameter name="clip"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-window-actor.c"
                 line="1722">A clipping rectangle, to help prevent extra processing.
In the case that the clipping rectangle is partially or fully
outside the bounds of the actor, the rectangle will be clipped.</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_meta_window"
              c:identifier="meta_window_actor_get_meta_window"
              glib:get-property="meta-window">
        <doc xml:space="preserve"
             filename="src/compositor/meta-window-actor.c"
             line="731">Gets the #MetaWindow object that the the #MetaWindowActor is displaying</doc>
        <source-position filename="src/meta/meta-window-actor.h" line="38"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/compositor/meta-window-actor.c"
               line="737">the displayed #MetaWindow</doc>
          <type name="Window" c:type="MetaWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-window-actor.c"
                 line="733">a #MetaWindowActor</doc>
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_texture" c:identifier="meta_window_actor_get_texture">
        <doc xml:space="preserve"
             filename="src/compositor/meta-window-actor.c"
             line="748">Gets the ClutterActor that is used to display the contents of the window,
or NULL if no texture is shown yet, because the window is not mapped.</doc>
        <source-position filename="src/meta/meta-window-actor.h" line="41"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/compositor/meta-window-actor.c"
               line="755">the #ClutterActor for the contents</doc>
          <type name="ShapedTexture" c:type="MetaShapedTexture*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-window-actor.c"
                 line="750">a #MetaWindowActor</doc>
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_destroyed"
              c:identifier="meta_window_actor_is_destroyed">
        <doc xml:space="preserve"
             filename="src/compositor/meta-window-actor.c"
             line="800">Gets whether the X window that the actor was displaying has been destroyed</doc>
        <source-position filename="src/meta/meta-window-actor.h" line="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/compositor/meta-window-actor.c"
               line="806">%TRUE when the window is destroyed, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-window-actor.c"
                 line="802">a #MetaWindowActor</doc>
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="paint_to_content"
              c:identifier="meta_window_actor_paint_to_content"
              throws="1">
        <source-position filename="src/meta/meta-window-actor.h" line="54"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="src/compositor/meta-window-actor.c"
               line="1840">a new #ClutterContent</doc>
          <type name="Clutter.Content" c:type="ClutterContent*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-window-actor.c"
                 line="1833">A #MetaWindowActor</doc>
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </instance-parameter>
          <parameter name="clip"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-window-actor.c"
                 line="1834">A clipping rectangle, in actor coordinates, to help
prevent extra processing.
In the case that the clipping rectangle is partially or fully
outside the bounds of the actor, the rectangle will be clipped.</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="sync_visibility"
              c:identifier="meta_window_actor_sync_visibility">
        <source-position filename="src/meta/meta-window-actor.h" line="44"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="thaw" c:identifier="meta_window_actor_thaw">
        <doc xml:space="preserve"
             filename="src/compositor/meta-window-actor.c"
             line="401">Thaws/unfreezes the #MetaWindowActor to allow updates and geometry
changes after a window was frozen using meta_window_actor_freeze().</doc>
        <source-position filename="src/meta/meta-window-actor.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/compositor/meta-window-actor.c"
                 line="403">The #MetaWindowActor</doc>
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="meta-window"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_meta_window">
        <type name="Window"/>
      </property>
      <field name="parent_instance">
        <type name="Clutter.Actor" c:type="ClutterActor"/>
      </field>
      <glib:signal name="damaged" when="last">
        <doc xml:space="preserve"
             filename="src/compositor/meta-window-actor.c"
             line="258">Notify that one or more of the surfaces of the window have been damaged.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="effects-completed" when="last">
        <doc xml:space="preserve"
             filename="src/compositor/meta-window-actor.c"
             line="243">The ::effects-completed signal will be emitted once all pending compositor
effects are completed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="first-frame" when="last">
        <doc xml:space="preserve"
             filename="src/compositor/meta-window-actor.c"
             line="218">The ::first-frame signal will be emitted the first time a frame
of window contents has been drawn by the application and Mutter
has had the chance to drawn that frame to the screen. If the
window starts off initially hidden, obscured, or on on a
different workspace, the ::first-frame signal will be emitted
even though the user doesn't see the contents.

MetaDisplay::window-created is a good place to connect to this
signal - at that point, the MetaWindowActor for the window
exists, but the window has reliably not yet been drawn.
Connecting to an existing window that has already been drawn to
the screen is not useful.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="thawed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="WindowActorClass"
            c:type="MetaWindowActorClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="WindowActor">
      <source-position filename="src/meta/meta-window-actor.h" line="32"/>
    </record>
    <record name="WindowClass"
            c:type="MetaWindowClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Window">
      <source-position filename="src/meta/window.h" line="101"/>
    </record>
    <enumeration name="WindowClientType"
                 glib:type-name="MetaWindowClientType"
                 glib:get-type="meta_window_client_type_get_type"
                 c:type="MetaWindowClientType">
      <member name="wayland"
              value="0"
              c:identifier="META_WINDOW_CLIENT_TYPE_WAYLAND"
              glib:nick="wayland"
              glib:name="META_WINDOW_CLIENT_TYPE_WAYLAND">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="83">A Wayland based window</doc>
      </member>
      <member name="x11"
              value="1"
              c:identifier="META_WINDOW_CLIENT_TYPE_X11"
              glib:nick="x11"
              glib:name="META_WINDOW_CLIENT_TYPE_X11">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="84">An X11 based window</doc>
      </member>
    </enumeration>
    <class name="WindowConfig"
           c:symbol-prefix="window_config"
           c:type="MetaWindowConfig"
           parent="GObject.Object"
           final="1"
           glib:type-name="MetaWindowConfig"
           glib:get-type="meta_window_config_get_type"
           glib:type-struct="WindowConfigClass">
      <doc xml:space="preserve"
           filename="src/core/meta-window-config.c"
           line="25">An object representing the configuration of a top-level window</doc>
      <source-position filename="src/meta/meta-window-config.h" line="28"/>
      <constructor name="new" c:identifier="meta_window_config_new">
        <source-position filename="src/meta/meta-window-config.h" line="35"/>
        <return-value transfer-ownership="full">
          <type name="WindowConfig" c:type="MetaWindowConfig*"/>
        </return-value>
      </constructor>
      <method name="get_is_fullscreen"
              c:identifier="meta_window_config_get_is_fullscreen"
              glib:get-property="is-fullscreen">
        <source-position filename="src/meta/meta-window-config.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window_config" transfer-ownership="none">
            <type name="WindowConfig" c:type="MetaWindowConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_initial"
              c:identifier="meta_window_config_get_is_initial">
        <source-position filename="src/meta/meta-window-config.h" line="38"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window_config" transfer-ownership="none">
            <type name="WindowConfig" c:type="MetaWindowConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_position"
              c:identifier="meta_window_config_get_position">
        <source-position filename="src/meta/meta-window-config.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window_config" transfer-ownership="none">
            <type name="WindowConfig" c:type="MetaWindowConfig*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rect"
              c:identifier="meta_window_config_get_rect"
              glib:get-property="rect">
        <source-position filename="src/meta/meta-window-config.h" line="45"/>
        <return-value transfer-ownership="full">
          <type name="Mtk.Rectangle" c:type="MtkRectangle"/>
        </return-value>
        <parameters>
          <instance-parameter name="window_config" transfer-ownership="none">
            <type name="WindowConfig" c:type="MetaWindowConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size" c:identifier="meta_window_config_get_size">
        <source-position filename="src/meta/meta-window-config.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window_config" transfer-ownership="none">
            <type name="WindowConfig" c:type="MetaWindowConfig*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_is_fullscreen"
              c:identifier="meta_window_config_set_is_fullscreen"
              glib:set-property="is-fullscreen">
        <source-position filename="src/meta/meta-window-config.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window_config" transfer-ownership="none">
            <type name="WindowConfig" c:type="MetaWindowConfig*"/>
          </instance-parameter>
          <parameter name="is_fullscreen" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_position"
              c:identifier="meta_window_config_set_position">
        <source-position filename="src/meta/meta-window-config.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window_config" transfer-ownership="none">
            <type name="WindowConfig" c:type="MetaWindowConfig*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rect"
              c:identifier="meta_window_config_set_rect"
              glib:set-property="rect">
        <source-position filename="src/meta/meta-window-config.h" line="41"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window_config" transfer-ownership="none">
            <type name="WindowConfig" c:type="MetaWindowConfig*"/>
          </instance-parameter>
          <parameter name="rect" transfer-ownership="none">
            <type name="Mtk.Rectangle" c:type="MtkRectangle"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size" c:identifier="meta_window_config_set_size">
        <source-position filename="src/meta/meta-window-config.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="window_config" transfer-ownership="none">
            <type name="WindowConfig" c:type="MetaWindowConfig*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <property name="is-fullscreen"
                writable="1"
                transfer-ownership="none"
                setter="set_is_fullscreen"
                getter="get_is_fullscreen"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="rect"
                writable="1"
                transfer-ownership="none"
                setter="set_rect"
                getter="get_rect">
        <type name="Mtk.Rectangle"/>
      </property>
    </class>
    <record name="WindowConfigClass"
            c:type="MetaWindowConfigClass"
            glib:is-gtype-struct-for="WindowConfig">
      <source-position filename="src/meta/meta-window-config.h" line="28"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <callback name="WindowForeachFunc" c:type="MetaWindowForeachFunc">
      <source-position filename="src/meta/window.h" line="252"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <type name="Window" c:type="MetaWindow*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <type name="gpointer" c:type="void*"/>
        </parameter>
      </parameters>
    </callback>
    <class name="WindowGroup"
           c:symbol-prefix="window_group"
           c:type="MetaWindowGroup"
           parent="Clutter.Actor"
           glib:type-name="MetaWindowGroup"
           glib:get-type="meta_window_group_get_type"
           glib:type-struct="WindowGroupClass">
      <source-position filename="src/meta/meta-window-group.h" line="10"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
    </class>
    <record name="WindowGroupClass"
            c:type="MetaWindowGroupClass"
            glib:is-gtype-struct-for="WindowGroup">
      <source-position filename="src/meta/meta-window-group.h" line="10"/>
      <field name="parent_class">
        <type name="Clutter.ActorClass" c:type="ClutterActorClass"/>
      </field>
    </record>
    <enumeration name="WindowMenuType"
                 glib:type-name="MetaWindowMenuType"
                 glib:get-type="meta_window_menu_type_get_type"
                 c:type="MetaWindowMenuType">
      <doc xml:space="preserve"
           filename="src/meta/meta-enums.h"
           line="328">Menu the compositor should display for a given window</doc>
      <member name="wm"
              value="0"
              c:identifier="META_WINDOW_MENU_WM"
              glib:nick="wm"
              glib:name="META_WINDOW_MENU_WM">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="330">the window manager menu</doc>
      </member>
      <member name="app"
              value="1"
              c:identifier="META_WINDOW_MENU_APP"
              glib:nick="app"
              glib:name="META_WINDOW_MENU_APP">
        <doc xml:space="preserve"
             filename="src/meta/meta-enums.h"
             line="331">the (fallback) app menu</doc>
      </member>
    </enumeration>
    <enumeration name="WindowType"
                 glib:type-name="MetaWindowType"
                 glib:get-type="meta_window_type_get_type"
                 c:type="MetaWindowType">
      <member name="normal"
              value="0"
              c:identifier="META_WINDOW_NORMAL"
              glib:nick="normal"
              glib:name="META_WINDOW_NORMAL">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="29">Normal</doc>
      </member>
      <member name="desktop"
              value="1"
              c:identifier="META_WINDOW_DESKTOP"
              glib:nick="desktop"
              glib:name="META_WINDOW_DESKTOP">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="30">Desktop</doc>
      </member>
      <member name="dock"
              value="2"
              c:identifier="META_WINDOW_DOCK"
              glib:nick="dock"
              glib:name="META_WINDOW_DOCK">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="31">Dock</doc>
      </member>
      <member name="dialog"
              value="3"
              c:identifier="META_WINDOW_DIALOG"
              glib:nick="dialog"
              glib:name="META_WINDOW_DIALOG">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="32">Dialog</doc>
      </member>
      <member name="modal_dialog"
              value="4"
              c:identifier="META_WINDOW_MODAL_DIALOG"
              glib:nick="modal-dialog"
              glib:name="META_WINDOW_MODAL_DIALOG">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="33">Modal dialog</doc>
      </member>
      <member name="toolbar"
              value="5"
              c:identifier="META_WINDOW_TOOLBAR"
              glib:nick="toolbar"
              glib:name="META_WINDOW_TOOLBAR">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="34">Toolbar</doc>
      </member>
      <member name="menu"
              value="6"
              c:identifier="META_WINDOW_MENU"
              glib:nick="menu"
              glib:name="META_WINDOW_MENU">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="35">Menu</doc>
      </member>
      <member name="utility"
              value="7"
              c:identifier="META_WINDOW_UTILITY"
              glib:nick="utility"
              glib:name="META_WINDOW_UTILITY">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="36">Utility</doc>
      </member>
      <member name="splashscreen"
              value="8"
              c:identifier="META_WINDOW_SPLASHSCREEN"
              glib:nick="splashscreen"
              glib:name="META_WINDOW_SPLASHSCREEN">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="37">Splashcreen</doc>
      </member>
      <member name="dropdown_menu"
              value="9"
              c:identifier="META_WINDOW_DROPDOWN_MENU"
              glib:nick="dropdown-menu"
              glib:name="META_WINDOW_DROPDOWN_MENU">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="38">Dropdown menu</doc>
      </member>
      <member name="popup_menu"
              value="10"
              c:identifier="META_WINDOW_POPUP_MENU"
              glib:nick="popup-menu"
              glib:name="META_WINDOW_POPUP_MENU">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="39">Popup menu</doc>
      </member>
      <member name="tooltip"
              value="11"
              c:identifier="META_WINDOW_TOOLTIP"
              glib:nick="tooltip"
              glib:name="META_WINDOW_TOOLTIP">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="40">Tooltip</doc>
      </member>
      <member name="notification"
              value="12"
              c:identifier="META_WINDOW_NOTIFICATION"
              glib:nick="notification"
              glib:name="META_WINDOW_NOTIFICATION">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="41">Notification</doc>
      </member>
      <member name="combo"
              value="13"
              c:identifier="META_WINDOW_COMBO"
              glib:nick="combo"
              glib:name="META_WINDOW_COMBO">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="42">Combobox</doc>
      </member>
      <member name="dnd"
              value="14"
              c:identifier="META_WINDOW_DND"
              glib:nick="dnd"
              glib:name="META_WINDOW_DND">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="43">Drag and drop</doc>
      </member>
      <member name="override_other"
              value="15"
              c:identifier="META_WINDOW_OVERRIDE_OTHER"
              glib:nick="override-other"
              glib:name="META_WINDOW_OVERRIDE_OTHER">
        <doc xml:space="preserve"
             filename="src/meta/window.h"
             line="44">Other override-redirect window type</doc>
      </member>
    </enumeration>
    <class name="Workspace"
           c:symbol-prefix="workspace"
           c:type="MetaWorkspace"
           parent="GObject.Object"
           glib:type-name="MetaWorkspace"
           glib:get-type="meta_workspace_get_type"
           glib:type-struct="WorkspaceClass">
      <doc xml:space="preserve"
           filename="src/core/workspace.c"
           line="22">Workspaces

A workspace is a set of windows which all live on the same
screen.  (You may also see the name "desktop" around the place,
which is the EWMH's name for the same thing.)  Only one workspace
of a screen may be active at once; all windows on all other workspaces
are unmapped.</doc>
      <source-position filename="src/meta/workspace.h" line="33"/>
      <method name="activate" c:identifier="meta_workspace_activate">
        <source-position filename="src/meta/workspace.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace" transfer-ownership="none">
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="activate_with_focus"
              c:identifier="meta_workspace_activate_with_focus">
        <doc xml:space="preserve"
             filename="src/core/workspace.c"
             line="535">Switches to @workspace and possibly activates the window @focus_this.

The window @focus_this is activated by calling meta_window_activate()
which will unminimize it and transient parents, raise it and give it
the focus.

If a window is currently being moved by the user, it will be
moved to @workspace.

The advantage of calling this function instead of meta_workspace_activate()
followed by meta_window_activate() is that it happens as a unit, so
no other window gets focused first before @focus_this.</doc>
        <source-position filename="src/meta/workspace.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/workspace.c"
                 line="537">a #MetaWorkspace</doc>
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </instance-parameter>
          <parameter name="focus_this" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/workspace.c"
                 line="538">the #MetaWindow to be focused, or %NULL</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/workspace.c"
                 line="539">timestamp for @focus_this</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_display" c:identifier="meta_workspace_get_display">
        <doc xml:space="preserve"
             filename="src/core/workspace.c"
             line="1682">Gets the #MetaDisplay that the workspace is part of.</doc>
        <source-position filename="src/meta/workspace.h" line="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/workspace.c"
               line="1688">the #MetaDisplay for the workspace</doc>
          <type name="Display" c:type="MetaDisplay*"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/workspace.c"
                 line="1684">a #MetaWorkspace</doc>
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_neighbor" c:identifier="meta_workspace_get_neighbor">
        <doc xml:space="preserve"
             filename="src/core/workspace.c"
             line="1262">Calculate and retrieve the workspace that is next to @workspace,
according to @direction and the current workspace layout, as set
by meta_screen_override_workspace_layout().</doc>
        <source-position filename="src/meta/workspace.h" line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/workspace.c"
               line="1271">the workspace next to @workspace, or
  @workspace itself if the neighbor would be outside the layout</doc>
          <type name="Workspace" c:type="MetaWorkspace*"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/workspace.c"
                 line="1264">a #MetaWorkspace</doc>
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </instance-parameter>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/workspace.c"
                 line="1265">a #MetaMotionDirection, relative to @workspace</doc>
            <type name="MotionDirection" c:type="MetaMotionDirection"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_work_area_all_monitors"
              c:identifier="meta_workspace_get_work_area_all_monitors">
        <doc xml:space="preserve"
             filename="src/core/workspace.c"
             line="1197">Stores the work area in @area.</doc>
        <source-position filename="src/meta/workspace.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/workspace.c"
                 line="1199">a #MetaWorkspace</doc>
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </instance-parameter>
          <parameter name="area"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/workspace.c"
                 line="1200">location to store the work area</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_work_area_for_monitor"
              c:identifier="meta_workspace_get_work_area_for_monitor">
        <doc xml:space="preserve"
             filename="src/core/workspace.c"
             line="1163">Stores the work area for @which_monitor on @workspace
in @area.</doc>
        <source-position filename="src/meta/workspace.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/workspace.c"
                 line="1165">a #MetaWorkspace</doc>
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </instance-parameter>
          <parameter name="which_monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/workspace.c"
                 line="1166">a monitor index</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="area"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/workspace.c"
                 line="1167">location to store the work area</doc>
            <type name="Mtk.Rectangle" c:type="MtkRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="index" c:identifier="meta_workspace_index">
        <source-position filename="src/meta/workspace.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace" transfer-ownership="none">
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_windows" c:identifier="meta_workspace_list_windows">
        <doc xml:space="preserve"
             filename="src/core/workspace.c"
             line="749">Gets windows contained on the workspace, including workspace-&gt;windows
and also sticky windows. Override-redirect windows are not included.</doc>
        <source-position filename="src/meta/workspace.h" line="45"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="src/core/workspace.c"
               line="756">the list of windows.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Window"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/workspace.c"
                 line="751">a #MetaWorkspace</doc>
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_builtin_struts"
              c:identifier="meta_workspace_set_builtin_struts">
        <doc xml:space="preserve"
             filename="src/core/workspace.c"
             line="1064">Sets a list of struts that will be used in addition to the struts
of the windows in the workspace when computing the work area of
the workspace.</doc>
        <source-position filename="src/meta/workspace.h" line="65"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/workspace.c"
                 line="1066">a #MetaWorkspace</doc>
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </instance-parameter>
          <parameter name="struts" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/workspace.c"
                 line="1067">list of #MetaStrut</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="Strut"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <property name="active" transfer-ownership="none" default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="n-windows" transfer-ownership="none" default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="workspace-index"
                transfer-ownership="none"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <glib:signal name="window-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="Window"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="WorkspaceClass"
            c:type="MetaWorkspaceClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="Workspace">
      <source-position filename="src/meta/workspace.h" line="33"/>
    </record>
    <class name="WorkspaceManager"
           c:symbol-prefix="workspace_manager"
           c:type="MetaWorkspaceManager"
           parent="GObject.Object"
           glib:type-name="MetaWorkspaceManager"
           glib:get-type="meta_workspace_manager_get_type"
           glib:type-struct="WorkspaceManagerClass">
      <source-position filename="src/meta/meta-workspace-manager.h" line="35"/>
      <method name="append_new_workspace"
              c:identifier="meta_workspace_manager_append_new_workspace">
        <doc xml:space="preserve"
             filename="src/core/meta-workspace-manager.c"
             line="356">Append a new workspace to the workspace manager and (optionally) switch to that
display.</doc>
        <source-position filename="src/meta/meta-workspace-manager.h"
                         line="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/meta-workspace-manager.c"
               line="367">the newly appended workspace.</doc>
          <type name="Workspace" c:type="MetaWorkspace*"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace_manager"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="358">a #MetaWorkspaceManager</doc>
            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
          </instance-parameter>
          <parameter name="activate" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="359">%TRUE if the workspace should be switched to after creation</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="360">if switching to a new workspace, timestamp to be used when
  focusing a window on the new workspace. (Doesn't hurt to pass a valid
  timestamp when available even if not switching workspaces.)</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_active_workspace"
              c:identifier="meta_workspace_manager_get_active_workspace">
        <source-position filename="src/meta/meta-workspace-manager.h"
                         line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/meta-workspace-manager.c"
               line="1014">The current workspace</doc>
          <type name="Workspace" c:type="MetaWorkspace*"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace_manager"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="1012">A #MetaWorkspaceManager</doc>
            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_active_workspace_index"
              c:identifier="meta_workspace_manager_get_active_workspace_index">
        <source-position filename="src/meta/meta-workspace-manager.h"
                         line="66"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace_manager"
                              transfer-ownership="none">
            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_layout_columns"
              c:identifier="meta_workspace_manager_get_layout_columns"
              glib:get-property="layout-columns">
        <source-position filename="src/meta/meta-workspace-manager.h"
                         line="79"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace_manager"
                              transfer-ownership="none">
            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_layout_rows"
              c:identifier="meta_workspace_manager_get_layout_rows"
              glib:get-property="layout-rows">
        <source-position filename="src/meta/meta-workspace-manager.h"
                         line="82"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace_manager"
                              transfer-ownership="none">
            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_workspaces"
              c:identifier="meta_workspace_manager_get_n_workspaces"
              glib:get-property="n-workspaces">
        <source-position filename="src/meta/meta-workspace-manager.h"
                         line="44"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace_manager"
                              transfer-ownership="none">
            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_workspace_by_index"
              c:identifier="meta_workspace_manager_get_workspace_by_index">
        <doc xml:space="preserve"
             filename="src/core/meta-workspace-manager.c"
             line="269">Gets the workspace object for one of a workspace manager's workspaces given the workspace
index. It's valid to call this function with an out-of-range index and it
will robustly return %NULL.</doc>
        <source-position filename="src/meta/meta-workspace-manager.h"
                         line="47"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="src/core/meta-workspace-manager.c"
               line="278">the workspace object with specified
  index, or %NULL if the index is out of range.</doc>
          <type name="Workspace" c:type="MetaWorkspace*"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace_manager"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="271">a #MetaWorkspaceManager</doc>
            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
          </instance-parameter>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="272">index of one of the display's workspaces</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_workspaces"
              c:identifier="meta_workspace_manager_get_workspaces"
              introspectable="0">
        <source-position filename="src/meta/meta-workspace-manager.h"
                         line="41"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/meta-workspace-manager.c"
               line="991">The workspaces for @display</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Workspace"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="workspace_manager"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="989">a #MetaWorkspaceManager</doc>
            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="override_workspace_layout"
              c:identifier="meta_workspace_manager_override_workspace_layout">
        <doc xml:space="preserve"
             filename="src/core/meta-workspace-manager.c"
             line="571">Explicitly set the layout of workspaces. Once this has been called, the contents of the
_NET_DESKTOP_LAYOUT property on the root window are completely ignored.</doc>
        <source-position filename="src/meta/meta-workspace-manager.h"
                         line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace_manager"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="573">a #MetaWorkspaceManager</doc>
            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
          </instance-parameter>
          <parameter name="starting_corner" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="574">the corner at which the first workspace is found</doc>
            <type name="DisplayCorner" c:type="MetaDisplayCorner"/>
          </parameter>
          <parameter name="vertical_layout" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="575">if %TRUE the workspaces are laid out in columns rather than rows</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="n_rows" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="576">number of rows of workspaces, or -1 to determine the number of rows from
  @n_columns and the total number of workspaces</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="n_columns" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="578">number of columns of workspaces, or -1 to determine the number of columns from
  @n_rows and the total number of workspaces</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_workspace"
              c:identifier="meta_workspace_manager_remove_workspace">
        <source-position filename="src/meta/meta-workspace-manager.h"
                         line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace_manager"
                              transfer-ownership="none">
            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="reorder_workspace"
              c:identifier="meta_workspace_manager_reorder_workspace">
        <doc xml:space="preserve"
             filename="src/core/meta-workspace-manager.c"
             line="474">Reorder a workspace to a new index. If the workspace is currently active
the "active-workspace-changed" signal will be emitted.
If the workspace's index is the same as @new_index or the workspace
will not be found in the list, this function will return.

Calling this function will also emit the "workspaces-reordered" signal.</doc>
        <source-position filename="src/meta/meta-workspace-manager.h"
                         line="61"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="workspace_manager"
                              transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="476">a #MetaWorkspaceManager</doc>
            <type name="WorkspaceManager" c:type="MetaWorkspaceManager*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="477">a #MetaWorkspace to reorder</doc>
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </parameter>
          <parameter name="new_index" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/core/meta-workspace-manager.c"
                 line="478">the new index of the passed workspace</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <property name="layout-columns"
                transfer-ownership="none"
                getter="get_layout_columns"
                default-value="1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="layout-rows"
                transfer-ownership="none"
                getter="get_layout_rows"
                default-value="-1">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="n-workspaces"
                transfer-ownership="none"
                getter="get_n_workspaces"
                default-value="1">
        <type name="gint" c:type="gint"/>
      </property>
      <glib:signal name="active-workspace-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="showing-desktop-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="workspace-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="workspace-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="workspace-switched" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="MotionDirection"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="workspaces-reordered" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="WorkspaceManagerClass"
            c:type="MetaWorkspaceManagerClass"
            glib:is-gtype-struct-for="WorkspaceManager">
      <source-position filename="src/meta/meta-workspace-manager.h" line="35"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="X11Display"
           c:symbol-prefix="x11_display"
           c:type="MetaX11Display"
           parent="GObject.Object"
           glib:type-name="MetaX11Display"
           glib:get-type="meta_x11_display_get_type"
           glib:type-struct="X11DisplayClass">
      <doc xml:space="preserve"
           filename="src/x11/meta-x11-display.c"
           line="23">Mutter X display handler

The X11 display is represented as a #MetaX11Display struct.</doc>
      <source-position filename="src/meta/meta-x11-display.h" line="38"/>
      <method name="add_event_func"
              c:identifier="meta_x11_display_add_event_func"
              introspectable="0">
        <source-position filename="src/meta/meta-x11-display.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="unsigned int"/>
        </return-value>
        <parameters>
          <instance-parameter name="x11_display" transfer-ownership="none">
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-parameter>
          <parameter name="event_func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <type name="X11DisplayEventFunc" c:type="MetaX11DisplayEventFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy_notify"
                     transfer-ownership="none"
                     scope="async">
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_xdisplay"
              c:identifier="meta_x11_display_get_xdisplay"
              introspectable="0">
        <source-position filename="src/meta/meta-x11-display.h" line="41"/>
        <return-value>
          <type name="xlib.Display" c:type="Display*"/>
        </return-value>
        <parameters>
          <instance-parameter name="x11_display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/x11/meta-x11-display.c"
                 line="1784">a #MetaX11Display</doc>
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xroot"
              c:identifier="meta_x11_display_get_xroot"
              introspectable="0">
        <source-position filename="src/meta/meta-x11-display.h" line="44"/>
        <return-value transfer-ownership="none">
          <type name="xlib.Window" c:type="Window"/>
        </return-value>
        <parameters>
          <instance-parameter name="x11_display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="src/x11/meta-x11-display.c"
                 line="1795">A #MetaX11Display</doc>
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="lookup_xwindow"
              c:identifier="meta_x11_display_lookup_xwindow">
        <source-position filename="src/meta/meta-x11-display.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="xlib.Window" c:type="Window"/>
        </return-value>
        <parameters>
          <instance-parameter name="x11_display" transfer-ownership="none">
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="redirect_windows"
              c:identifier="meta_x11_display_redirect_windows">
        <source-position filename="src/meta/meta-x11-display.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="x11_display" transfer-ownership="none">
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-parameter>
          <parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_event_func"
              c:identifier="meta_x11_display_remove_event_func"
              introspectable="0">
        <source-position filename="src/meta/meta-x11-display.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="x11_display" transfer-ownership="none">
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="unsigned int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_stage_input_region"
              c:identifier="meta_x11_display_set_stage_input_region"
              introspectable="0">
        <source-position filename="src/meta/meta-x11-display.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="x11_display" transfer-ownership="none">
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-parameter>
          <parameter name="rects" transfer-ownership="none">
            <type c:type="XRectangle*"/>
          </parameter>
          <parameter name="n_rects" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="X11DisplayClass"
            c:type="MetaX11DisplayClass"
            glib:is-gtype-struct-for="X11Display">
      <source-position filename="src/meta/meta-x11-display.h" line="38"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <callback name="X11DisplayEventFunc"
              c:type="MetaX11DisplayEventFunc"
              introspectable="0">
      <source-position filename="src/meta/meta-x11-display.h" line="31"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="x11_display" transfer-ownership="none">
          <type name="X11Display" c:type="MetaX11Display*"/>
        </parameter>
        <parameter name="xev" transfer-ownership="none">
          <type c:type="XEvent*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <union name="XEvent" c:type="MetaXEvent">
      <source-position filename="src/meta/meta-plugin.h" line="39"/>
    </union>
    <record name="_Monitor" c:type="_MetaMonitor">
      <source-position filename="src/meta/meta-monitor.h" line="24"/>
      <field name="parent_instance" writable="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </record>
    <function name="accelerator_name" c:identifier="meta_accelerator_name">
      <doc xml:space="preserve"
           filename="src/core/meta-accel-parse.c"
           line="360">Convert an accelerator keyval and modifier mask into a string parsable by `meta_parse_accelerator`.</doc>
      <source-position filename="src/meta/util.h" line="116"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="src/core/meta-accel-parse.c"
             line="367">The accelerator name.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="accelerator_mods" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/meta-accel-parse.c"
               line="362">Accelerator modifier mask.</doc>
          <type name="Clutter.ModifierType" c:type="ClutterModifierType"/>
        </parameter>
        <parameter name="accelerator_key" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/meta-accel-parse.c"
               line="363">Accelerator keyval.</doc>
          <type name="guint" c:type="unsigned int"/>
        </parameter>
      </parameters>
    </function>
    <function name="add_debug_paint_flag"
              c:identifier="meta_add_debug_paint_flag">
      <source-position filename="src/meta/util.h" line="107"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="flag" transfer-ownership="none">
          <type name="DebugPaintFlag" c:type="MetaDebugPaintFlag"/>
        </parameter>
      </parameters>
    </function>
    <function name="add_verbose_topic" c:identifier="meta_add_verbose_topic">
      <doc xml:space="preserve"
           filename="src/core/util.c"
           line="159">Ensure log messages for the given topic @topic
will be printed.</doc>
      <source-position filename="src/meta/util.h" line="64"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="topic" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/util.c"
               line="161">Topic for which logging will be started</doc>
          <type name="DebugTopic" c:type="MetaDebugTopic"/>
        </parameter>
      </parameters>
    </function>
    <function name="bug" c:identifier="meta_bug" introspectable="0">
      <source-position filename="src/meta/util.h" line="39"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="format" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="create_context" c:identifier="meta_create_context">
      <doc xml:space="preserve"
           filename="src/core/meta-context-main.c"
           line="729">Create a context.</doc>
      <source-position filename="src/meta/meta-context.h" line="31"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="src/core/meta-context-main.c"
             line="735">A new context instance.</doc>
        <type name="Context" c:type="MetaContext*"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/meta-context-main.c"
               line="731">Human readable name of display server or window manager</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="exit" c:identifier="meta_exit">
      <source-position filename="src/meta/main.h" line="49"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="code" transfer-ownership="none">
          <type name="ExitCode" c:type="MetaExitCode"/>
        </parameter>
      </parameters>
    </function>
    <function name="external_binding_name_for_action"
              c:identifier="meta_external_binding_name_for_action">
      <source-position filename="src/meta/util.h" line="88"/>
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="keybinding_action" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="fatal" c:identifier="meta_fatal" introspectable="0">
      <source-position filename="src/meta/util.h" line="43"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="format" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="frame_type_to_string"
              c:identifier="meta_frame_type_to_string"
              moved-to="FrameType.to_string">
      <doc xml:space="preserve"
           filename="src/x11/meta-x11-frame.c"
           line="599">Converts a frame type enum value to the name string that would
appear in the theme definition file.</doc>
      <source-position filename="src/meta/util.h" line="83"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/x11/meta-x11-frame.c"
             line="606">the string value</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="type" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/x11/meta-x11-frame.c"
               line="601">a #MetaFrameType</doc>
          <type name="FrameType" c:type="MetaFrameType"/>
        </parameter>
      </parameters>
    </function>
    <function name="g_utf8_strndup" c:identifier="meta_g_utf8_strndup">
      <source-position filename="src/meta/util.h" line="91"/>
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="src" transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="n" transfer-ownership="none">
          <type name="gsize" c:type="gsize"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_debug_paint_flags"
              c:identifier="meta_get_debug_paint_flags">
      <source-position filename="src/meta/util.h" line="113"/>
      <return-value transfer-ownership="none">
        <type name="DebugPaintFlag" c:type="MetaDebugPaintFlag"/>
      </return-value>
    </function>
    <function name="gravity_to_string"
              c:identifier="meta_gravity_to_string"
              moved-to="Gravity.to_string">
      <source-position filename="src/meta/util.h" line="85"/>
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="gravity" transfer-ownership="none">
          <type name="Gravity" c:type="MetaGravity"/>
        </parameter>
      </parameters>
    </function>
    <function name="is_restart" c:identifier="meta_is_restart">
      <doc xml:space="preserve"
           filename="src/core/restart.c"
           line="205">Returns %TRUE if this instance of Mutter comes from Mutter
restarting itself (for example to enable/disable stereo.)

See [func@Meta.restart]. If this is the case, any startup visuals
or animations should be suppressed.</doc>
      <source-position filename="src/meta/main.h" line="34"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="is_topic_enabled" c:identifier="meta_is_topic_enabled">
      <source-position filename="src/meta/meta-debug.h" line="90"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="topic" transfer-ownership="none">
          <type name="DebugTopic" c:type="MetaDebugTopic"/>
        </parameter>
      </parameters>
    </function>
    <function name="is_verbose" c:identifier="meta_is_verbose">
      <source-position filename="src/meta/util.h" line="33"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="is_wayland_compositor"
              c:identifier="meta_is_wayland_compositor">
      <source-position filename="src/meta/util.h" line="36"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="keybindings_set_custom_handler"
              c:identifier="meta_keybindings_set_custom_handler">
      <doc xml:space="preserve"
           filename="src/core/keybindings.c"
           line="2536">Allows users to register a custom handler for a
builtin key binding.</doc>
      <source-position filename="src/meta/keybindings.h" line="41"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="src/core/keybindings.c"
             line="2546">%TRUE if the binding known as @name was found,
%FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/keybindings.c"
               line="2538">The name of the keybinding to set</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="handler"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="notified"
                   closure="2"
                   destroy="3">
          <doc xml:space="preserve"
               filename="src/core/keybindings.c"
               line="2539">The new handler function</doc>
          <type name="KeyHandlerFunc" c:type="MetaKeyHandlerFunc"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/core/keybindings.c"
               line="2540">User data to pass to the callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="free_data" transfer-ownership="none" scope="async">
          <doc xml:space="preserve"
               filename="src/core/keybindings.c"
               line="2541">Will be called when this handler is overridden.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="log" c:identifier="meta_log" introspectable="0">
      <source-position filename="src/meta/meta-debug.h" line="98"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="format" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <varargs/>
        </parameter>
      </parameters>
    </function>
    <function name="orientation_to_transform"
              c:identifier="meta_orientation_to_transform"
              moved-to="Orientation.to_transform">
      <source-position filename="src/meta/meta-orientation-manager.h"
                       line="53"/>
      <return-value transfer-ownership="none">
        <type name="Mtk.MonitorTransform" c:type="MtkMonitorTransform"/>
      </return-value>
      <parameters>
        <parameter name="orientation" transfer-ownership="none">
          <type name="Orientation" c:type="MetaOrientation"/>
        </parameter>
      </parameters>
    </function>
    <function name="pop_no_msg_prefix" c:identifier="meta_pop_no_msg_prefix">
      <source-position filename="src/meta/util.h" line="73"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="preference_to_string"
              c:identifier="meta_preference_to_string"
              moved-to="Preference.to_string">
      <source-position filename="src/meta/prefs.h" line="120"/>
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="pref" transfer-ownership="none">
          <type name="Preference" c:type="MetaPreference"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_add_listener"
              c:identifier="meta_prefs_add_listener"
              introspectable="0">
      <source-position filename="src/meta/prefs.h" line="112"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="func" transfer-ownership="none" closure="1">
          <doc xml:space="preserve"
               filename="src/core/prefs.c"
               line="854">a #MetaPrefsChangedFunc</doc>
          <type name="PrefsChangedFunc" c:type="MetaPrefsChangedFunc"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/core/prefs.c"
               line="855">data passed to the function</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_bell_is_audible"
              c:identifier="meta_prefs_bell_is_audible">
      <source-position filename="src/meta/prefs.h" line="476"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_change_workspace_name"
              c:identifier="meta_prefs_change_workspace_name">
      <source-position filename="src/meta/prefs.h" line="202"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="i" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_get_action_double_click_titlebar"
              c:identifier="meta_prefs_get_action_double_click_titlebar">
      <source-position filename="src/meta/prefs.h" line="187"/>
      <return-value transfer-ownership="none">
        <type name="GDesktopEnums.TitlebarAction"
              c:type="GDesktopTitlebarAction"/>
      </return-value>
    </function>
    <function name="prefs_get_action_middle_click_titlebar"
              c:identifier="meta_prefs_get_action_middle_click_titlebar">
      <source-position filename="src/meta/prefs.h" line="190"/>
      <return-value transfer-ownership="none">
        <type name="GDesktopEnums.TitlebarAction"
              c:type="GDesktopTitlebarAction"/>
      </return-value>
    </function>
    <function name="prefs_get_action_right_click_titlebar"
              c:identifier="meta_prefs_get_action_right_click_titlebar">
      <source-position filename="src/meta/prefs.h" line="193"/>
      <return-value transfer-ownership="none">
        <type name="GDesktopEnums.TitlebarAction"
              c:type="GDesktopTitlebarAction"/>
      </return-value>
    </function>
    <function name="prefs_get_attach_modal_dialogs"
              c:identifier="meta_prefs_get_attach_modal_dialogs">
      <source-position filename="src/meta/prefs.h" line="138"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_auto_maximize"
              c:identifier="meta_prefs_get_auto_maximize">
      <source-position filename="src/meta/prefs.h" line="171"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_auto_raise"
              c:identifier="meta_prefs_get_auto_raise">
      <source-position filename="src/meta/prefs.h" line="153"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_auto_raise_delay"
              c:identifier="meta_prefs_get_auto_raise_delay">
      <source-position filename="src/meta/prefs.h" line="156"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
    </function>
    <function name="prefs_get_button_layout"
              c:identifier="meta_prefs_get_button_layout">
      <source-position filename="src/meta/prefs.h" line="183"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="button_layout"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none">
          <type name="ButtonLayout" c:type="MetaButtonLayout*"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_get_center_new_windows"
              c:identifier="meta_prefs_get_center_new_windows">
      <source-position filename="src/meta/prefs.h" line="174"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_check_alive_timeout"
              c:identifier="meta_prefs_get_check_alive_timeout">
      <source-position filename="src/meta/prefs.h" line="482"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="unsigned int"/>
      </return-value>
    </function>
    <function name="prefs_get_compositing_manager"
              c:identifier="meta_prefs_get_compositing_manager">
      <source-position filename="src/meta/prefs.h" line="212"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_cursor_size"
              c:identifier="meta_prefs_get_cursor_size">
      <source-position filename="src/meta/prefs.h" line="209"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
    </function>
    <function name="prefs_get_cursor_theme"
              c:identifier="meta_prefs_get_cursor_theme">
      <source-position filename="src/meta/prefs.h" line="206"/>
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const char*"/>
      </return-value>
    </function>
    <function name="prefs_get_disable_workarounds"
              c:identifier="meta_prefs_get_disable_workarounds">
      <source-position filename="src/meta/prefs.h" line="150"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_drag_threshold"
              c:identifier="meta_prefs_get_drag_threshold">
      <source-position filename="src/meta/prefs.h" line="227"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
    </function>
    <function name="prefs_get_draggable_border_width"
              c:identifier="meta_prefs_get_draggable_border_width">
      <source-position filename="src/meta/prefs.h" line="224"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
    </function>
    <function name="prefs_get_dynamic_workspaces"
              c:identifier="meta_prefs_get_dynamic_workspaces">
      <source-position filename="src/meta/prefs.h" line="147"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_edge_tiling"
              c:identifier="meta_prefs_get_edge_tiling">
      <source-position filename="src/meta/prefs.h" line="168"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_focus_change_on_pointer_rest"
              c:identifier="meta_prefs_get_focus_change_on_pointer_rest">
      <source-position filename="src/meta/prefs.h" line="159"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_focus_mode"
              c:identifier="meta_prefs_get_focus_mode">
      <source-position filename="src/meta/prefs.h" line="132"/>
      <return-value transfer-ownership="none">
        <type name="GDesktopEnums.FocusMode" c:type="GDesktopFocusMode"/>
      </return-value>
    </function>
    <function name="prefs_get_focus_new_windows"
              c:identifier="meta_prefs_get_focus_new_windows">
      <source-position filename="src/meta/prefs.h" line="135"/>
      <return-value transfer-ownership="none">
        <type name="GDesktopEnums.FocusNewWindows"
              c:type="GDesktopFocusNewWindows"/>
      </return-value>
    </function>
    <function name="prefs_get_force_fullscreen"
              c:identifier="meta_prefs_get_force_fullscreen">
      <source-position filename="src/meta/prefs.h" line="215"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_gnome_accessibility"
              c:identifier="meta_prefs_get_gnome_accessibility">
      <source-position filename="src/meta/prefs.h" line="162"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_gnome_animations"
              c:identifier="meta_prefs_get_gnome_animations">
      <source-position filename="src/meta/prefs.h" line="165"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_keybinding_action"
              c:identifier="meta_prefs_get_keybinding_action">
      <source-position filename="src/meta/prefs.h" line="467"/>
      <return-value transfer-ownership="none">
        <type name="KeyBindingAction" c:type="MetaKeyBindingAction"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_get_keybinding_label"
              c:identifier="meta_prefs_get_keybinding_label">
      <source-position filename="src/meta/prefs.h" line="470"/>
      <return-value transfer-ownership="full" nullable="1">
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_get_mouse_button_menu"
              c:identifier="meta_prefs_get_mouse_button_menu">
      <source-position filename="src/meta/prefs.h" line="129"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
    </function>
    <function name="prefs_get_mouse_button_mods"
              c:identifier="meta_prefs_get_mouse_button_mods">
      <source-position filename="src/meta/prefs.h" line="123"/>
      <return-value transfer-ownership="none">
        <type name="Clutter.ModifierType" c:type="ClutterModifierType"/>
      </return-value>
    </function>
    <function name="prefs_get_mouse_button_resize"
              c:identifier="meta_prefs_get_mouse_button_resize">
      <source-position filename="src/meta/prefs.h" line="126"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
    </function>
    <function name="prefs_get_num_workspaces"
              c:identifier="meta_prefs_get_num_workspaces">
      <source-position filename="src/meta/prefs.h" line="144"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
    </function>
    <function name="prefs_get_raise_on_click"
              c:identifier="meta_prefs_get_raise_on_click">
      <source-position filename="src/meta/prefs.h" line="141"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_show_fallback_app_menu"
              c:identifier="meta_prefs_get_show_fallback_app_menu">
      <source-position filename="src/meta/prefs.h" line="177"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_visual_bell"
              c:identifier="meta_prefs_get_visual_bell">
      <source-position filename="src/meta/prefs.h" line="473"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_visual_bell_type"
              c:identifier="meta_prefs_get_visual_bell_type">
      <source-position filename="src/meta/prefs.h" line="479"/>
      <return-value transfer-ownership="none">
        <type name="GDesktopEnums.VisualBellType"
              c:type="GDesktopVisualBellType"/>
      </return-value>
    </function>
    <function name="prefs_get_workspace_name"
              c:identifier="meta_prefs_get_workspace_name">
      <source-position filename="src/meta/prefs.h" line="199"/>
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="i" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_get_workspaces_only_on_primary"
              c:identifier="meta_prefs_get_workspaces_only_on_primary">
      <source-position filename="src/meta/prefs.h" line="221"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_remove_listener"
              c:identifier="meta_prefs_remove_listener"
              introspectable="0">
      <source-position filename="src/meta/prefs.h" line="116"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="func" transfer-ownership="none" closure="1">
          <doc xml:space="preserve"
               filename="src/core/prefs.c"
               line="873">a #MetaPrefsChangedFunc</doc>
          <type name="PrefsChangedFunc" c:type="MetaPrefsChangedFunc"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/core/prefs.c"
               line="874">data passed to the function</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_set_force_fullscreen"
              c:identifier="meta_prefs_set_force_fullscreen">
      <source-position filename="src/meta/prefs.h" line="218"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="whether" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_set_num_workspaces"
              c:identifier="meta_prefs_set_num_workspaces">
      <source-position filename="src/meta/prefs.h" line="196"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="n_workspaces" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="prefs_set_show_fallback_app_menu"
              c:identifier="meta_prefs_set_show_fallback_app_menu">
      <source-position filename="src/meta/prefs.h" line="180"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="whether" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="push_no_msg_prefix" c:identifier="meta_push_no_msg_prefix">
      <source-position filename="src/meta/util.h" line="70"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="read_bytes" c:identifier="meta_read_bytes">
      <source-position filename="src/meta/util.h" line="94"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="fd" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="offset" transfer-ownership="none">
          <type name="guint32" c:type="uint32_t"/>
        </parameter>
        <parameter name="length" transfer-ownership="none">
          <type name="guint32" c:type="uint32_t"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async"
                   closure="4">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="read_bytes_finish"
              c:identifier="meta_read_bytes_finish"
              throws="1">
      <source-position filename="src/meta/util.h" line="101"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
        <parameter name="bytes" transfer-ownership="none">
          <type name="guint8" c:type="uint8_t**"/>
        </parameter>
        <parameter name="length" transfer-ownership="none">
          <type name="guint32" c:type="uint32_t*"/>
        </parameter>
      </parameters>
    </function>
    <function name="remove_debug_paint_flag"
              c:identifier="meta_remove_debug_paint_flag">
      <source-position filename="src/meta/util.h" line="110"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="flag" transfer-ownership="none">
          <type name="DebugPaintFlag" c:type="MetaDebugPaintFlag"/>
        </parameter>
      </parameters>
    </function>
    <function name="remove_verbose_topic"
              c:identifier="meta_remove_verbose_topic">
      <doc xml:space="preserve"
           filename="src/core/util.c"
           line="182">Stop printing log messages for the given topic @topic.

Note that this method does not stack with [func@Meta.add_verbose_topic];
i.e. if two calls to [func@Meta.add_verbose_topic] for the same
topic are made, one call to [func@Meta.remove_verbose_topic]  will
remove it.</doc>
      <source-position filename="src/meta/util.h" line="67"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="topic" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/util.c"
               line="184">Topic for which logging will be stopped</doc>
          <type name="DebugTopic" c:type="MetaDebugTopic"/>
        </parameter>
      </parameters>
    </function>
    <function name="restart" c:identifier="meta_restart">
      <doc xml:space="preserve"
           filename="src/core/restart.c"
           line="115">Starts the process of restarting the compositor.

Note that Mutter's involvement here is to make the restart
visually smooth for the user - it cannot itself safely
reexec a program that embeds libmuttter.

So in order for this to work, the compositor must handle two
signals

- [signal@Meta.Display::show-restart-message], to display the
message passed here on the Clutter stage
- [signal@Meta.Display::restart] to actually reexec the compositor.</doc>
      <source-position filename="src/meta/main.h" line="30"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="message"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="src/core/restart.c"
               line="117">message to display to the user, or %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="context" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="src/core/restart.c"
               line="118">a #MetaContext</doc>
          <type name="Context" c:type="MetaContext*"/>
        </parameter>
      </parameters>
    </function>
    <function-macro name="topic" c:identifier="meta_topic" introspectable="0">
      <source-position filename="src/meta/meta-debug.h" line="100"/>
      <parameters>
        <parameter name="debug_topic">
        </parameter>
        <parameter name="...">
        </parameter>
      </parameters>
    </function-macro>
    <function name="topic_to_string" c:identifier="meta_topic_to_string">
      <source-position filename="src/meta/meta-debug.h" line="95"/>
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="topic" transfer-ownership="none">
          <type name="DebugTopic" c:type="MetaDebugTopic"/>
        </parameter>
      </parameters>
    </function>
    <function name="unsigned_long_equal"
              c:identifier="meta_unsigned_long_equal">
      <source-position filename="src/meta/util.h" line="76"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="v1"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gconstpointer"/>
        </parameter>
        <parameter name="v2"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gconstpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="unsigned_long_hash" c:identifier="meta_unsigned_long_hash">
      <source-position filename="src/meta/util.h" line="80"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="v"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gconstpointer"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
