<?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:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Clutter" version="11"/>
  <include name="Cogl" version="11"/>
  <include name="CoglPango" version="11"/>
  <include name="GDesktopEnums" version="3.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gdk" version="3.0"/>
  <include name="Gtk" version="3.0"/>
  <include name="xfixes" version="4.0"/>
  <include name="xlib" version="2.0"/>
  <namespace name="Meta"
             version="11"
             shared-library="libmutter-11.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">
      <source-position filename="../src/meta/meta-backend.h" line="44"/>
      <implements name="Gio.Initable"/>
      <method name="get_capabilities"
              c:identifier="meta_backend_get_capabilities"
              glib:get-property="capabilities">
        <source-position filename="../src/meta/meta-backend.h" line="87"/>
        <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="60"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/backends/meta-backend.c"
               line="1470">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="1468">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="72"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/backends/meta-backend.c"
               line="1268">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_dnd" c:identifier="meta_backend_get_dnd">
        <doc xml:space="preserve"
             filename="../src/backends/meta-backend.c"
             line="1665">Gets the global #MetaDnd that's managed by this backend.</doc>
        <source-position filename="../src/meta/meta-backend.h" line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/backends/meta-backend.c"
               line="1671">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="1667">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="75"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/backends/meta-backend.c"
               line="1293">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_remote_access_controller"
              c:identifier="meta_backend_get_remote_access_controller">
        <source-position filename="../src/meta/meta-backend.h" line="78"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/backends/meta-backend.c"
               line="1426">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="1424">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="69"/>
        <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="1543">Gets the global #ClutterStage that's managed by this backend.</doc>
        <source-position filename="../src/meta/meta-backend.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/backends/meta-backend.c"
               line="1549">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="1545">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="84"/>
        <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="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/backends/meta-backend.c"
               line="1444">%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="1442">A #MetaBackend</doc>
            <type name="Backend" c:type="MetaBackend*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="lock_layout_group"
              c:identifier="meta_backend_lock_layout_group">
        <source-position filename="../src/meta/meta-backend.h" line="56"/>
        <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="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_keymap" c:identifier="meta_backend_set_keymap">
        <source-position filename="../src/meta/meta-backend.h" line="50"/>
        <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>
        </parameters>
      </method>
      <property name="capabilities"
                transfer-ownership="none"
                getter="get_capabilities">
        <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">
            <doc xml:space="preserve"
                 filename="../src/backends/meta-backend.c"
                 line="942">the #MetaGpu</doc>
            <type/>
          </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"
            glib:is-gtype-struct-for="Backend">
      <source-position filename="../src/meta/meta-backend.h" line="44"/>
    </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="29">This class handles tracking and painting the root window background.
By integrating with #MetaWindowGroup 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="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_file" c:identifier="meta_background_set_file">
        <doc xml:space="preserve"
             filename="../src/compositor/meta-background.c"
             line="973">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="975">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="976">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="977">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="Clutter.Color" c:type="ClutterColor*"/>
          </parameter>
          <parameter name="second_color" transfer-ownership="none">
            <type name="Clutter.Color" c:type="ClutterColor*"/>
          </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="29">This class handles tracking and painting the root window background.
By integrating with #MetaWindowGroup 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"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="meta_background_actor_new">
        <doc xml:space="preserve"
             filename="../src/compositor/meta-background-actor.c"
             line="148">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="154">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="150">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">
        <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/meta/meta-background-content.h"
           line="29">This class handles tracking and painting the root window background.
By integrating with #MetaWindowGroup we can avoid painting parts of
the background that are obscured by other windows.</doc>
      <source-position filename="../src/meta/meta-background-content.h"
                       line="40"/>
      <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="1044">Creates a new actor to draw the background for the given monitor.</doc>
        <source-position filename="../src/meta/meta-background-content.h"
                         line="47"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-background-content.c"
               line="1050">the newly created background actor</doc>
          <type name="Clutter.Content" c:type="ClutterContent*"/>
        </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-content.c"
                 line="1046">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="51"/>
        <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="55"/>
        <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="1190">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="71"/>
        <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="1192">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="1193">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="67"/>
        <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="61"/>
        <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">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="gradient"
                writable="1"
                transfer-ownership="none"
                setter="set_gradient">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="gradient-height" writable="1" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="gradient-max-darkness"
                writable="1"
                transfer-ownership="none">
        <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">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="rounded-clip-radius"
                writable="1"
                transfer-ownership="none"
                setter="set_rounded_clip_radius">
        <type name="gfloat" c:type="gfloat"/>
      </property>
      <property name="vignette"
                writable="1"
                transfer-ownership="none"
                setter="set_vignette">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="vignette-sharpness"
                writable="1"
                transfer-ownership="none">
        <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="40"/>
      <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">
      <source-position filename="../src/meta/meta-background-group.h"
                       line="21"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <constructor name="new" c:identifier="meta_background_group_new">
        <source-position filename="../src/meta/meta-background-group.h"
                         line="24"/>
        <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="21"/>
      <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="57">#MetaBackgroundImage is an object that represents a loaded or loading background image.</doc>
      <source-position filename="../src/meta/meta-background-image.h"
                       line="35"/>
      <method name="get_success"
              c:identifier="meta_background_image_get_success">
        <doc xml:space="preserve"
             filename="../src/compositor/meta-background-image.c"
             line="338">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="44"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-background-image.c"
               line="346">%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="340">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="47"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-background-image.c"
               line="360">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="358">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="41"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-background-image.c"
               line="328">%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="326">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="43">#MetaBackgroundImageCache 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="53"/>
      <function name="get_default"
                c:identifier="meta_background_image_cache_get_default">
        <source-position filename="../src/meta/meta-background-image.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-background-image.c"
               line="110">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="217">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 #MetaBackgroundImage which can be dereferenced
to get a #CoglTexture. If meta_background_image_is_loaded() returns %TRUE,
the background is loaded, otherwise the MetaBackgroundImage::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="62"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-background-image.c"
               line="230">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="219">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="220">#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="260">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="66"/>
        <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="262">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="263">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="53"/>
      <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="35"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </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">
      <source-position filename="../src/meta/barrier.h" line="37"/>
      <implements name="Gio.Initable"/>
      <constructor name="new" c:identifier="meta_barrier_new" throws="1">
        <source-position filename="../src/meta/barrier.h" line="42"/>
        <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>
        </parameters>
      </constructor>
      <method name="destroy" c:identifier="meta_barrier_destroy">
        <source-position filename="../src/meta/barrier.h" line="54"/>
        <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="51"/>
        <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="208">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="57"/>
        <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="210">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="211">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">
        <type name="BarrierDirection"/>
      </property>
      <property name="display"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Display"/>
      </property>
      <property name="x1"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="x2"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="y1"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="y2"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <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="368">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="371">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="386">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="389">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="37"/>
      <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="14">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="15">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="16">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="17">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="94"/>
      <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="62">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="65">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="64">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="67">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="68">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="69">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="71">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="73">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="77">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>
    <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/common.h"
           line="366">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/common.h"
             line="368">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/common.h"
             line="369">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/common.h"
             line="370">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/common.h"
             line="371">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/common.h"
             line="372">Marks the end of the #MetaButtonFunction enumeration</doc>
      </member>
    </enumeration>
    <record name="ButtonLayout" c:type="MetaButtonLayout">
      <source-position filename="../src/meta/common.h" line="407"/>
      <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="47"/>
      <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="127">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="129">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="79">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="81">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="61">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="63">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="127">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="129">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="79">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="81">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="113">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="119">#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="115">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="97">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="99">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="100">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="61">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="63">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="63">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="81">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="129">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="35">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="37">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="41">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="43">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="44">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="46">No effect, the window should be
  shown or hidden immediately.</doc>
      </member>
    </enumeration>
    <class name="Compositor"
           c:symbol-prefix="compositor"
           c:type="MetaCompositor"
           introspectable="0"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="MetaCompositor"
           glib:get-type="meta_compositor_get_type"
           glib:type-struct="CompositorClass">
      <source-position filename="../src/meta/compositor.h" line="32"/>
      <method name="add_window" c:identifier="meta_compositor_add_window">
        <source-position filename="../src/meta/compositor.h" line="92"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="destroy" c:identifier="meta_compositor_destroy">
        <source-position filename="../src/meta/compositor.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="filter_keybinding"
              c:identifier="meta_compositor_filter_keybinding">
        <source-position filename="../src/meta/compositor.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="binding" transfer-ownership="none">
            <type name="KeyBinding" c:type="MetaKeyBinding*"/>
          </parameter>
        </parameters>
      </method>
      <method name="flash_display"
              c:identifier="meta_compositor_flash_display">
        <source-position filename="../src/meta/compositor.h" line="141"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_laters" c:identifier="meta_compositor_get_laters">
        <source-position filename="../src/meta/compositor.h" line="167"/>
        <return-value>
          <type name="Laters" c:type="MetaLaters*"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hide_tile_preview"
              c:identifier="meta_compositor_hide_tile_preview">
        <source-position filename="../src/meta/compositor.h" line="151"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hide_window" c:identifier="meta_compositor_hide_window">
        <source-position filename="../src/meta/compositor.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
          <parameter name="effect" transfer-ownership="none">
            <type name="CompEffect" c:type="MetaCompEffect"/>
          </parameter>
        </parameters>
      </method>
      <method name="manage" c:identifier="meta_compositor_manage">
        <source-position filename="../src/meta/compositor.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="queue_frame_drawn"
              c:identifier="meta_compositor_queue_frame_drawn">
        <source-position filename="../src/meta/compositor.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
          <parameter name="no_delay_frame" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_window"
              c:identifier="meta_compositor_remove_window">
        <source-position filename="../src/meta/compositor.h" line="96"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_tile_preview"
              c:identifier="meta_compositor_show_tile_preview">
        <source-position filename="../src/meta/compositor.h" line="145"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
          <parameter name="tile_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
          <parameter name="tile_monitor_number" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_window" c:identifier="meta_compositor_show_window">
        <source-position filename="../src/meta/compositor.h" line="100"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
          <parameter name="effect" transfer-ownership="none">
            <type name="CompEffect" c:type="MetaCompEffect"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_window_menu"
              c:identifier="meta_compositor_show_window_menu">
        <source-position filename="../src/meta/compositor.h" line="154"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </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>
      </method>
      <method name="show_window_menu_for_rect"
              c:identifier="meta_compositor_show_window_menu_for_rect">
        <source-position filename="../src/meta/compositor.h" line="161"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </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="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="size_change_window"
              c:identifier="meta_compositor_size_change_window">
        <source-position filename="../src/meta/compositor.h" line="116"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </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="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
          <parameter name="old_buffer_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="switch_workspace"
              c:identifier="meta_compositor_switch_workspace">
        <source-position filename="../src/meta/compositor.h" line="110"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="from" transfer-ownership="none">
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </parameter>
          <parameter name="to" transfer-ownership="none">
            <type name="Workspace" c:type="MetaWorkspace*"/>
          </parameter>
          <parameter name="direction" transfer-ownership="none">
            <type name="MotionDirection" c:type="MetaMotionDirection"/>
          </parameter>
        </parameters>
      </method>
      <method name="sync_stack" c:identifier="meta_compositor_sync_stack">
        <source-position filename="../src/meta/compositor.h" line="137"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="stack" transfer-ownership="none">
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="sync_updates_frozen"
              c:identifier="meta_compositor_sync_updates_frozen">
        <source-position filename="../src/meta/compositor.h" line="128"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="sync_window_geometry"
              c:identifier="meta_compositor_sync_window_geometry">
        <source-position filename="../src/meta/compositor.h" line="123"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
          <parameter name="did_placement" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="unmanage" c:identifier="meta_compositor_unmanage">
        <source-position filename="../src/meta/compositor.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="window_opacity_changed"
              c:identifier="meta_compositor_window_opacity_changed">
        <source-position filename="../src/meta/compositor.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="window_shape_changed"
              c:identifier="meta_compositor_window_shape_changed">
        <source-position filename="../src/meta/compositor.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="compositor" transfer-ownership="none">
            <type name="Compositor" c:type="MetaCompositor*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <property name="backend"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <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"
            glib:is-gtype-struct-for="Compositor">
      <source-position filename="../src/meta/compositor.h" line="32"/>
    </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="32"/>
      <method name="add_option_entries"
              c:identifier="meta_context_add_option_entries">
        <doc xml:space="preserve"
             filename="../src/core/meta-context.c"
             line="88">See g_option_context_add_main_entries() for more details.</doc>
        <source-position filename="../src/meta/meta-context.h" line="41"/>
        <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="90">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="91">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="92">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="110">See g_option_context_add_group() for more details.</doc>
        <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">
            <doc xml:space="preserve"
                 filename="../src/core/meta-context.c"
                 line="112">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="113">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="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/meta-context.c"
               line="285">%TRUE if the commandline arguments (if any) were valid and if the
configuration has been successfull, %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="278">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="279">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="281">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="38"/>
        <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="96"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/meta-context.c"
               line="196">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="194">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="90"/>
        <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_display" c:identifier="meta_context_get_display">
        <source-position filename="../src/meta/meta-context.h" line="99"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/meta-context.c"
               line="210">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="208">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="93"/>
        <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="80"/>
        <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="532">Raises the RLIMIT_NOFILE limit value to the hard limit.</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="534">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="572">Restores the RLIMIT_NOFILE limits from when the #MetaContext was created.</doc>
        <source-position filename="../src/meta/meta-context.h" line="106"/>
        <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="574">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="76"/>
        <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="58"/>
        <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="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_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="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="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="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="start" c:identifier="meta_context_start" 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="terminate" c:identifier="meta_context_terminate">
        <source-position filename="../src/meta/meta-context.h" line="83"/>
        <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="86"/>
        <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">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="unsafe-mode" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="ContextClass"
            c:type="MetaContextClass"
            disguised="1"
            glib:is-gtype-struct-for="Context">
      <source-position filename="../src/meta/meta-context.h" line="32"/>
    </record>
    <enumeration name="Cursor"
                 glib:type-name="MetaCursor"
                 glib:get-type="meta_cursor_get_type"
                 c:type="MetaCursor">
      <member name="none"
              value="0"
              c:identifier="META_CURSOR_NONE"
              glib:nick="none"
              glib:name="META_CURSOR_NONE">
      </member>
      <member name="default"
              value="1"
              c:identifier="META_CURSOR_DEFAULT"
              glib:nick="default"
              glib:name="META_CURSOR_DEFAULT">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="185">Default cursor</doc>
      </member>
      <member name="north_resize"
              value="2"
              c:identifier="META_CURSOR_NORTH_RESIZE"
              glib:nick="north-resize"
              glib:name="META_CURSOR_NORTH_RESIZE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="186">Resize northern edge cursor</doc>
      </member>
      <member name="south_resize"
              value="3"
              c:identifier="META_CURSOR_SOUTH_RESIZE"
              glib:nick="south-resize"
              glib:name="META_CURSOR_SOUTH_RESIZE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="187">Resize southern edge cursor</doc>
      </member>
      <member name="west_resize"
              value="4"
              c:identifier="META_CURSOR_WEST_RESIZE"
              glib:nick="west-resize"
              glib:name="META_CURSOR_WEST_RESIZE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="188">Resize western edge cursor</doc>
      </member>
      <member name="east_resize"
              value="5"
              c:identifier="META_CURSOR_EAST_RESIZE"
              glib:nick="east-resize"
              glib:name="META_CURSOR_EAST_RESIZE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="189">Resize eastern edge cursor</doc>
      </member>
      <member name="se_resize"
              value="6"
              c:identifier="META_CURSOR_SE_RESIZE"
              glib:nick="se-resize"
              glib:name="META_CURSOR_SE_RESIZE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="190">Resize south-eastern corner cursor</doc>
      </member>
      <member name="sw_resize"
              value="7"
              c:identifier="META_CURSOR_SW_RESIZE"
              glib:nick="sw-resize"
              glib:name="META_CURSOR_SW_RESIZE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="191">Resize south-western corner cursor</doc>
      </member>
      <member name="ne_resize"
              value="8"
              c:identifier="META_CURSOR_NE_RESIZE"
              glib:nick="ne-resize"
              glib:name="META_CURSOR_NE_RESIZE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="192">Resize north-eastern corner cursor</doc>
      </member>
      <member name="nw_resize"
              value="9"
              c:identifier="META_CURSOR_NW_RESIZE"
              glib:nick="nw-resize"
              glib:name="META_CURSOR_NW_RESIZE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="193">Resize north-western corner cursor</doc>
      </member>
      <member name="move_or_resize_window"
              value="10"
              c:identifier="META_CURSOR_MOVE_OR_RESIZE_WINDOW"
              glib:nick="move-or-resize-window"
              glib:name="META_CURSOR_MOVE_OR_RESIZE_WINDOW">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="194">Move or resize cursor</doc>
      </member>
      <member name="busy"
              value="11"
              c:identifier="META_CURSOR_BUSY"
              glib:nick="busy"
              glib:name="META_CURSOR_BUSY">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="195">Busy cursor</doc>
      </member>
      <member name="dnd_in_drag"
              value="12"
              c:identifier="META_CURSOR_DND_IN_DRAG"
              glib:nick="dnd-in-drag"
              glib:name="META_CURSOR_DND_IN_DRAG">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="196">DND in drag cursor</doc>
      </member>
      <member name="dnd_move"
              value="13"
              c:identifier="META_CURSOR_DND_MOVE"
              glib:nick="dnd-move"
              glib:name="META_CURSOR_DND_MOVE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="197">DND move cursor</doc>
      </member>
      <member name="dnd_copy"
              value="14"
              c:identifier="META_CURSOR_DND_COPY"
              glib:nick="dnd-copy"
              glib:name="META_CURSOR_DND_COPY">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="198">DND copy cursor</doc>
      </member>
      <member name="dnd_unsupported_target"
              value="15"
              c:identifier="META_CURSOR_DND_UNSUPPORTED_TARGET"
              glib:nick="dnd-unsupported-target"
              glib:name="META_CURSOR_DND_UNSUPPORTED_TARGET">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="199">DND unsupported target</doc>
      </member>
      <member name="pointing_hand"
              value="16"
              c:identifier="META_CURSOR_POINTING_HAND"
              glib:nick="pointing-hand"
              glib:name="META_CURSOR_POINTING_HAND">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="200">pointing hand</doc>
      </member>
      <member name="crosshair"
              value="17"
              c:identifier="META_CURSOR_CROSSHAIR"
              glib:nick="crosshair"
              glib:name="META_CURSOR_CROSSHAIR">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="201">crosshair (action forbidden)</doc>
      </member>
      <member name="ibeam"
              value="18"
              c:identifier="META_CURSOR_IBEAM"
              glib:nick="ibeam"
              glib:name="META_CURSOR_IBEAM">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="202">I-beam (text input)</doc>
      </member>
      <member name="blank"
              value="19"
              c:identifier="META_CURSOR_BLANK"
              glib:nick="blank"
              glib:name="META_CURSOR_BLANK">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="203">Invisible cursor</doc>
      </member>
      <member name="last"
              value="20"
              c:identifier="META_CURSOR_LAST"
              glib:nick="last"
              glib:name="META_CURSOR_LAST">
      </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">
      <source-position filename="../src/meta/meta-cursor-tracker.h" line="35"/>
      <function name="get_for_display"
                c:identifier="meta_cursor_tracker_get_for_display">
        <doc xml:space="preserve"
             filename="../src/backends/meta-cursor-tracker.c"
             line="315">Retrieves the cursor tracker object for @display.</doc>
        <source-position filename="../src/meta/meta-cursor-tracker.h"
                         line="41"/>
        <return-value transfer-ownership="none">
          <type name="CursorTracker" c:type="MetaCursorTracker*"/>
        </return-value>
        <parameters>
          <parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/backends/meta-cursor-tracker.c"
                 line="317">the #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_hot" c:identifier="meta_cursor_tracker_get_hot">
        <source-position filename="../src/meta/meta-cursor-tracker.h"
                         line="44"/>
        <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>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <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="457">Get the current pointer position and state.</doc>
        <source-position filename="../src/meta/meta-cursor-tracker.h"
                         line="55"/>
        <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="459">a #MetaCursorTracker object</doc>
            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
          </instance-parameter>
          <parameter name="coords"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/backends/meta-cursor-tracker.c"
                 line="460">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">
            <doc xml:space="preserve"
                 filename="../src/backends/meta-cursor-tracker.c"
                 line="461">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="60"/>
        <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">
        <source-position filename="../src/meta/meta-cursor-tracker.h"
                         line="52"/>
        <return-value transfer-ownership="none">
          <type name="gfloat" c:type="float"/>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sprite" c:identifier="meta_cursor_tracker_get_sprite">
        <source-position filename="../src/meta/meta-cursor-tracker.h"
                         line="49"/>
        <return-value transfer-ownership="none">
          <type name="Cogl.Texture" c:type="CoglTexture*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tracker" transfer-ownership="none">
            <type name="CursorTracker" c:type="MetaCursorTracker*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_pointer_visible"
              c:identifier="meta_cursor_tracker_set_pointer_visible">
        <source-position filename="../src/meta/meta-cursor-tracker.h"
                         line="63"/>
        <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>
          <parameter name="visible" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </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="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"
            glib:is-gtype-struct-for="CursorTracker">
      <source-position filename="../src/meta/meta-cursor-tracker.h" line="35"/>
    </record>
    <constant name="DEFAULT_ICON_NAME"
              value="window"
              c:type="META_DEFAULT_ICON_NAME">
      <source-position filename="../src/meta/common.h" line="452"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function-macro name="DISPLAY"
                    c:identifier="META_DISPLAY"
                    introspectable="0">
      <source-position filename="../src/meta/display.h" line="69"/>
      <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="70"/>
      <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="73"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <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="113">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="114">paint opaque regions</doc>
      </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/util.h"
             line="52">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/util.h"
             line="53">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/util.h"
             line="54">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/util.h"
             line="55">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/util.h"
             line="56">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/util.h"
             line="57">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/util.h"
             line="58">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/util.h"
             line="59">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/util.h"
             line="60">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/util.h"
             line="61">window placement</doc>
      </member>
      <member name="ping"
              value="512"
              c:identifier="META_DEBUG_PING"
              glib:nick="ping"
              glib:name="META_DEBUG_PING">
        <doc xml:space="preserve"
             filename="../src/meta/util.h"
             line="62">ping</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/util.h"
             line="63">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/util.h"
             line="64">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/util.h"
             line="65">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/util.h"
             line="66">preferences</doc>
      </member>
      <member name="groups"
              value="16384"
              c:identifier="META_DEBUG_GROUPS"
              glib:nick="groups"
              glib:name="META_DEBUG_GROUPS">
        <doc xml:space="preserve"
             filename="../src/meta/util.h"
             line="67">groups</doc>
      </member>
      <member name="resizing"
              value="32768"
              c:identifier="META_DEBUG_RESIZING"
              glib:nick="resizing"
              glib:name="META_DEBUG_RESIZING">
        <doc xml:space="preserve"
             filename="../src/meta/util.h"
             line="68">resizing</doc>
      </member>
      <member name="shapes"
              value="65536"
              c:identifier="META_DEBUG_SHAPES"
              glib:nick="shapes"
              glib:name="META_DEBUG_SHAPES">
        <doc xml:space="preserve"
             filename="../src/meta/util.h"
             line="69">shapes</doc>
      </member>
      <member name="edge_resistance"
              value="131072"
              c:identifier="META_DEBUG_EDGE_RESISTANCE"
              glib:nick="edge-resistance"
              glib:name="META_DEBUG_EDGE_RESISTANCE">
        <doc xml:space="preserve"
             filename="../src/meta/util.h"
             line="70">edge resistance</doc>
      </member>
      <member name="dbus"
              value="262144"
              c:identifier="META_DEBUG_DBUS"
              glib:nick="dbus"
              glib:name="META_DEBUG_DBUS">
      </member>
      <member name="input"
              value="524288"
              c:identifier="META_DEBUG_INPUT"
              glib:nick="input"
              glib:name="META_DEBUG_INPUT">
      </member>
      <member name="wayland"
              value="1048576"
              c:identifier="META_DEBUG_WAYLAND"
              glib:nick="wayland"
              glib:name="META_DEBUG_WAYLAND">
        <doc xml:space="preserve"
             filename="../src/meta/util.h"
             line="71">Wayland</doc>
      </member>
      <member name="kms"
              value="2097152"
              c:identifier="META_DEBUG_KMS"
              glib:nick="kms"
              glib:name="META_DEBUG_KMS">
        <doc xml:space="preserve"
             filename="../src/meta/util.h"
             line="72">kernel mode setting</doc>
      </member>
      <member name="screen_cast"
              value="4194304"
              c:identifier="META_DEBUG_SCREEN_CAST"
              glib:nick="screen-cast"
              glib:name="META_DEBUG_SCREEN_CAST">
        <doc xml:space="preserve"
             filename="../src/meta/util.h"
             line="73">screencasting</doc>
      </member>
      <member name="remote_desktop"
              value="8388608"
              c:identifier="META_DEBUG_REMOTE_DESKTOP"
              glib:nick="remote-desktop"
              glib:name="META_DEBUG_REMOTE_DESKTOP">
        <doc xml:space="preserve"
             filename="../src/meta/util.h"
             line="74">remote desktop</doc>
      </member>
      <member name="backend"
              value="16777216"
              c:identifier="META_DEBUG_BACKEND"
              glib:nick="backend"
              glib:name="META_DEBUG_BACKEND">
        <doc xml:space="preserve"
             filename="../src/meta/util.h"
             line="75">backend</doc>
      </member>
      <member name="render"
              value="33554432"
              c:identifier="META_DEBUG_RENDER"
              glib:nick="render"
              glib:name="META_DEBUG_RENDER">
        <doc xml:space="preserve"
             filename="../src/meta/util.h"
             line="76">native backend rendering</doc>
      </member>
      <member name="color"
              value="67108864"
              c:identifier="META_DEBUG_COLOR"
              glib:nick="color"
              glib:name="META_DEBUG_COLOR">
        <doc xml:space="preserve"
             filename="../src/meta/util.h"
             line="77">color management</doc>
      </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/common.h"
             line="285">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/common.h"
             line="286">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/common.h"
             line="287">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/common.h"
             line="288">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/common.h"
             line="289">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/common.h"
             line="290">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/common.h"
             line="291">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/common.h"
             line="292">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">
      <source-position filename="../src/meta/display.h" line="66"/>
      <method name="add_ignored_crossing_serial"
              c:identifier="meta_display_add_ignored_crossing_serial">
        <doc xml:space="preserve"
             filename="../src/core/display.c"
             line="1343">Save the specified serial and ignore crossing events with that
serial for the purpose of focus-follows-mouse. This can be used
for certain changes to the window hierarchy that we don't want
to change the focus window, even if they cause the pointer to
end up in a new window.</doc>
        <source-position filename="../src/meta/display.h" line="188"/>
        <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="1345">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
          <parameter name="serial" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/display.c"
                 line="1346">the serial to ignore</doc>
            <type name="gulong" c:type="unsigned long"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_keybinding" c:identifier="meta_display_add_keybinding">
        <doc xml:space="preserve"
             filename="../src/core/keybindings.c"
             line="1004">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="154"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/keybindings.c"
               line="1024">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="1006">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="1007">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="1008">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="1009">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="1010">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="1011">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="1012">function to free @user_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="begin_grab_op" c:identifier="meta_display_begin_grab_op">
        <source-position filename="../src/meta/display.h" line="135"/>
        <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="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
          <parameter name="op" transfer-ownership="none">
            <type name="GrabOp" c:type="MetaGrabOp"/>
          </parameter>
          <parameter name="pointer_already_grabbed" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="frame_action" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="button" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="modmask" transfer-ownership="none">
            <type name="gulong" c:type="gulong"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="root_x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="root_y" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </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="2916">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="192"/>
        <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="2918">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="85"/>
        <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="end_grab_op" c:identifier="meta_display_end_grab_op">
        <source-position filename="../src/meta/display.h" line="147"/>
        <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="277"/>
        <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="freeze_keyboard"
              c:identifier="meta_display_freeze_keyboard">
        <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">
            <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"
              introspectable="0">
        <source-position filename="../src/meta/display.h" line="92"/>
        <return-value>
          <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="2851">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="181"/>
        <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="89"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="2839">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="2837">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="3626">Gets the index of the monitor that currently has the mouse pointer.</doc>
        <source-position filename="../src/meta/display.h" line="252"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="3632">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="3628">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="109"/>
        <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="112"/>
        <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="2900">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="98"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="2908">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="2902">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_grab_op" c:identifier="meta_display_get_grab_op">
        <doc xml:space="preserve"
             filename="../src/core/display.c"
             line="2064">Gets the current grab operation, if any.</doc>
        <source-position filename="../src/meta/display.h" line="151"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="2070">the current grab operation, or %META_GRAB_OP_NONE if
Mutter doesn't currently have a grab.</doc>
          <type name="GrabOp" c:type="MetaGrabOp"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/display.c"
                 line="2066">The #MetaDisplay that the window is on</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="1110">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="176"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/keybindings.c"
               line="1121">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="1112">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="1113">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="1114">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="106"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="1318">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="1316">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="3695">Stores the location and size of the indicated @monitor in @geometry.</doc>
        <source-position filename="../src/meta/display.h" line="255"/>
        <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="3697">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="3698">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="3699">location to store the monitor geometry</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </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="3758">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="264"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="3770">%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="3760">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="3761">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="268"/>
        <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="Rectangle" c:type="MetaRectangle*"/>
          </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="272"/>
        <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="3727">Gets the monitor scaling value for the given @monitor.</doc>
        <source-position filename="../src/meta/display.h" line="260"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="3734">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="3729">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="3730">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="3649">Gets the number of monitors that are joined together to form @display.</doc>
        <source-position filename="../src/meta/display.h" line="246"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="3655">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="3651">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pad_action_label"
              c:identifier="meta_display_get_pad_action_label">
        <source-position filename="../src/meta/display.h" line="216"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </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="action_type" transfer-ownership="none">
            <type name="PadActionType" c:type="MetaPadActionType"/>
          </parameter>
          <parameter name="action_number" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </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="3669">Gets the index of the primary monitor on this @display.</doc>
        <source-position filename="../src/meta/display.h" line="249"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="3675">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="3671">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="308"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="3898">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="3896">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="2871">Retrieve the size of the display.</doc>
        <source-position filename="../src/meta/display.h" line="222"/>
        <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="2873">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="2874">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="2875">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="305"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="3886">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="3884">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="302"/>
        <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="2539">Determine the active window that should be displayed for Alt-TAB.</doc>
        <source-position filename="../src/meta/display.h" line="130"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="2547">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="2541">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="2542">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="2543">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="2411">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="118"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="2423">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="2413">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="2414">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="2415">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="2487">Determine the next window that should be displayed for Alt-TAB
functionality.</doc>
        <source-position filename="../src/meta/display.h" line="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="2498">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="2489">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="2490">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="2491">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="2492">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="2493">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="296"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="3836">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="3834">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/display.h" line="95"/>
        <return-value>
          <type name="X11Display" c:type="MetaX11Display*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/display.c"
                 line="2862">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="167"/>
        <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_pointer_emulating_sequence"
              c:identifier="meta_display_is_pointer_emulating_sequence">
        <doc xml:space="preserve"
             filename="../src/core/display.c"
             line="2978">Tells whether the event sequence is the used for pointer emulation
and single-touch interaction.</doc>
        <source-position filename="../src/meta/display.h" line="207"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="2986">#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="2980">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="2981">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="2386">List all windows, including override-redirect ones. The windows are
in no particular order.</doc>
        <source-position filename="../src/meta/display.h" line="115"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="2393">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="2388">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="1045">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="163"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/keybindings.c"
               line="1053">%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="1047">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="1048">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="211"/>
        <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="227"/>
        <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="311"/>
        <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="focus_frame" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </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="2684">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="184"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="2699">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="2686">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="2687">Set of windows</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="Window"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="supports_extended_barriers"
              c:identifier="meta_display_supports_extended_barriers">
        <source-position filename="../src/meta/display.h" line="82"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="2816">whether pointer barriers can be supported.

When running as an X compositor the X server needs XInput 2
version 2.3. When running as a display server it is supported
when running on the native backend.

Clients should use this method to determine whether their
interfaces should depend on new barrier features.</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="2814">a #MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unfreeze_keyboard"
              c:identifier="meta_display_unfreeze_keyboard">
        <source-position filename="../src/meta/display.h" line="203"/>
        <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="ungrab_accelerator"
              c:identifier="meta_display_ungrab_accelerator">
        <source-position filename="../src/meta/display.h" line="172"/>
        <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="ungrab_keyboard"
              c:identifier="meta_display_ungrab_keyboard">
        <source-position filename="../src/meta/display.h" line="199"/>
        <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="unset_input_focus"
              c:identifier="meta_display_unset_input_focus">
        <source-position filename="../src/meta/display.h" line="316"/>
        <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="1289">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="101"/>
        <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="1291">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="1292">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="1293">An event timestamp</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <property name="compositor-modifiers"
                transfer-ownership="none"
                getter="get_compositor_modifiers">
        <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="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="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="306">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="313">%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="400">The ::restart signal is emitted to indicate that compositor
should reexec the process. This is
emitted when meta_restart() is called, either by Mutter
internally or by the embedding compositor. See also
::show-restart-message.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/display.c"
               line="410">%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="441">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="452">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="444">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="445">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="446">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="447">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="448">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="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="370">The ::show-restart-message signal will be emitted to indicate
that the compositor should show a message during restart. This is
emitted when 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 -
::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="387">%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="373">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"
            glib:is-gtype-struct-for="Display">
      <source-position filename="../src/meta/display.h" line="66"/>
    </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="282">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="283">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="284">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="285">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="232">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="233">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="234">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="235">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="32"/>
      <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="32"/>
      <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="102"/>
      <field name="rect" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/boxes.h"
             line="92">#MetaRectangle with the bounds of the edge</doc>
        <type name="Rectangle" c:type="MetaRectangle"/>
      </field>
      <field name="side_type" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/boxes.h"
             line="93">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="94">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="79">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="80">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="81">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="39">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="40">Error</doc>
      </member>
    </enumeration>
    <record name="Frame" c:type="MetaFrame" disguised="1">
      <source-position filename="../src/meta/types.h" line="32"/>
    </record>
    <record name="FrameBorders" c:type="MetaFrameBorders">
      <source-position filename="../src/meta/common.h" line="440"/>
      <field name="visible" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="424">inner visible portion of frame border</doc>
        <type name="Gtk.Border" c:type="GtkBorder"/>
      </field>
      <field name="invisible" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="425">outer invisible portion of frame border</doc>
        <type name="Gtk.Border" c:type="GtkBorder"/>
      </field>
      <field name="total" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="426">sum of the two borders above</doc>
        <type name="Gtk.Border" c:type="GtkBorder"/>
      </field>
      <method name="clear" c:identifier="meta_frame_borders_clear">
        <source-position filename="../src/meta/common.h" line="444"/>
        <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>
    <bitfield name="FrameFlags"
              glib:type-name="MetaFrameFlags"
              glib:get-type="meta_frame_flags_get_type"
              c:type="MetaFrameFlags">
      <member name="allows_delete"
              value="1"
              c:identifier="META_FRAME_ALLOWS_DELETE"
              glib:nick="allows-delete"
              glib:name="META_FRAME_ALLOWS_DELETE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="53">frame allows delete</doc>
      </member>
      <member name="allows_menu"
              value="2"
              c:identifier="META_FRAME_ALLOWS_MENU"
              glib:nick="allows-menu"
              glib:name="META_FRAME_ALLOWS_MENU">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="54">frame allows menu</doc>
      </member>
      <member name="allows_minimize"
              value="4"
              c:identifier="META_FRAME_ALLOWS_MINIMIZE"
              glib:nick="allows-minimize"
              glib:name="META_FRAME_ALLOWS_MINIMIZE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="55">frame allows minimize</doc>
      </member>
      <member name="allows_maximize"
              value="8"
              c:identifier="META_FRAME_ALLOWS_MAXIMIZE"
              glib:nick="allows-maximize"
              glib:name="META_FRAME_ALLOWS_MAXIMIZE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="56">frame allows maximize</doc>
      </member>
      <member name="allows_vertical_resize"
              value="16"
              c:identifier="META_FRAME_ALLOWS_VERTICAL_RESIZE"
              glib:nick="allows-vertical-resize"
              glib:name="META_FRAME_ALLOWS_VERTICAL_RESIZE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="57">frame allows vertical resize</doc>
      </member>
      <member name="allows_horizontal_resize"
              value="32"
              c:identifier="META_FRAME_ALLOWS_HORIZONTAL_RESIZE"
              glib:nick="allows-horizontal-resize"
              glib:name="META_FRAME_ALLOWS_HORIZONTAL_RESIZE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="58">frame allows horizontal resize</doc>
      </member>
      <member name="has_focus"
              value="64"
              c:identifier="META_FRAME_HAS_FOCUS"
              glib:nick="has-focus"
              glib:name="META_FRAME_HAS_FOCUS">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="59">frame has focus</doc>
      </member>
      <member name="shaded"
              value="128"
              c:identifier="META_FRAME_SHADED"
              glib:nick="shaded"
              glib:name="META_FRAME_SHADED">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="60">frame is shaded</doc>
      </member>
      <member name="stuck"
              value="256"
              c:identifier="META_FRAME_STUCK"
              glib:nick="stuck"
              glib:name="META_FRAME_STUCK">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="61">frame is stuck</doc>
      </member>
      <member name="maximized"
              value="512"
              c:identifier="META_FRAME_MAXIMIZED"
              glib:nick="maximized"
              glib:name="META_FRAME_MAXIMIZED">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="62">frame is maximized</doc>
      </member>
      <member name="allows_shade"
              value="1024"
              c:identifier="META_FRAME_ALLOWS_SHADE"
              glib:nick="allows-shade"
              glib:name="META_FRAME_ALLOWS_SHADE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="63">frame allows shade</doc>
      </member>
      <member name="allows_move"
              value="2048"
              c:identifier="META_FRAME_ALLOWS_MOVE"
              glib:nick="allows-move"
              glib:name="META_FRAME_ALLOWS_MOVE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="64">frame allows move</doc>
      </member>
      <member name="fullscreen"
              value="4096"
              c:identifier="META_FRAME_FULLSCREEN"
              glib:nick="fullscreen"
              glib:name="META_FRAME_FULLSCREEN">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="65">frame allows fullscreen</doc>
      </member>
      <member name="above"
              value="8192"
              c:identifier="META_FRAME_ABOVE"
              glib:nick="above"
              glib:name="META_FRAME_ABOVE">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="66">frame is above</doc>
      </member>
      <member name="tiled_left"
              value="16384"
              c:identifier="META_FRAME_TILED_LEFT"
              glib:nick="tiled-left"
              glib:name="META_FRAME_TILED_LEFT">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="67">frame is tiled to the left</doc>
      </member>
      <member name="tiled_right"
              value="32768"
              c:identifier="META_FRAME_TILED_RIGHT"
              glib:nick="tiled-right"
              glib:name="META_FRAME_TILED_RIGHT">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="68">frame is tiled to the right</doc>
      </member>
    </bitfield>
    <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/common.h"
             line="232">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/common.h"
             line="233">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/common.h"
             line="234">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/common.h"
             line="235">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/common.h"
             line="236">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/common.h"
             line="237">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/common.h"
             line="238">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/common.h"
             line="239">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/ui/theme.c"
             line="1370">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="145"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/ui/theme.c"
               line="1377">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/ui/theme.c"
                 line="1372">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/common.h"
             line="92">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="wayland_popup"
              value="2"
              c:identifier="META_GRAB_OP_WAYLAND_POPUP"
              glib:nick="wayland-popup"
              glib:name="META_GRAB_OP_WAYLAND_POPUP">
      </member>
      <member name="frame_button"
              value="3"
              c:identifier="META_GRAB_OP_FRAME_BUTTON"
              glib:nick="frame-button"
              glib:name="META_GRAB_OP_FRAME_BUTTON">
      </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/common.h"
             line="93">Moving with pointer</doc>
      </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/common.h"
             line="99">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/common.h"
             line="97">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/common.h"
             line="98">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/common.h"
             line="101">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/common.h"
             line="96">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/common.h"
             line="95">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/common.h"
             line="94">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/common.h"
             line="100">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/common.h"
             line="102">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/common.h"
             line="103">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/common.h"
             line="111">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/common.h"
             line="105">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/common.h"
             line="109">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/common.h"
             line="107">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/common.h"
             line="110">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/common.h"
             line="104">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/common.h"
             line="108">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/common.h"
             line="106">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="147"/>
        <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" introspectable="0">
      <source-position filename="../src/meta/types.h" line="40"/>
      <method name="get_size" c:identifier="meta_group_get_size">
        <source-position filename="../src/meta/group.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <type name="Group" c:type="MetaGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_startup_id" c:identifier="meta_group_get_startup_id">
        <source-position filename="../src/meta/group.h" line="56"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <type name="Group" c:type="MetaGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_windows" c:identifier="meta_group_list_windows">
        <source-position filename="../src/meta/group.h" line="50"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../src/x11/group.c"
               line="256">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/group.c"
                 line="254">A #MetaGroup</doc>
            <type name="Group" c:type="MetaGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="property_notify"
              c:identifier="meta_group_property_notify"
              introspectable="0">
        <source-position filename="../src/meta/group.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/x11/group.c"
                 line="310">a #MetaGroup</doc>
            <type name="Group" c:type="MetaGroup*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/x11/group.c"
                 line="311">a X event</doc>
            <type c:type="XEvent*"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_layers" c:identifier="meta_group_update_layers">
        <source-position filename="../src/meta/group.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="group" transfer-ownership="none">
            <type name="Group" c:type="MetaGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <constant name="ICON_HEIGHT" value="96" c:type="META_ICON_HEIGHT">
      <source-position filename="../src/meta/common.h" line="448"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ICON_WIDTH" value="96" c:type="META_ICON_WIDTH">
      <source-position filename="../src/meta/common.h" line="447"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="IS_DISPLAY"
                    c:identifier="META_IS_DISPLAY"
                    introspectable="0">
      <source-position filename="../src/meta/display.h" line="71"/>
      <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="72"/>
      <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="98"/>
      <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="99"/>
      <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="30"/>
      <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="31"/>
      <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">
      <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="370">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="363">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="364">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="365">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="367">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="368">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="412">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="406">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="407">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="409">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="410">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="464">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="462">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="439">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="441">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="442">A watch ID</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="device"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/backends/meta-idle-monitor.c"
             line="149">The device to listen to idletime on.</doc>
        <type name="Clutter.InputDevice"/>
      </property>
    </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="72">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="74">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="55">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="57">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="72">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="74">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="89">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="91">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="92">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="55">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="57">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="57">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="74">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"
            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="41"/>
      <method name="get_mask" c:identifier="meta_key_binding_get_mask">
        <source-position filename="../src/meta/keybindings.h" line="33"/>
        <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="30"/>
        <return-value transfer-ownership="none">
          <type name="VirtualModifier" c:type="MetaVirtualModifier"/>
        </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="27"/>
        <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="36"/>
        <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="39"/>
        <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="238">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="239">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="240">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="241">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="242">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="243">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="244">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="245">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="246">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="247">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="248">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="249">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="250">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="251">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="252">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="253">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="254">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="255">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="256">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="257">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="258">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="259">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="260">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="261">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="262">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="263">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="264">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="265">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="266">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="267">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="268">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="269">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="270">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="271">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="272">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="273">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="274">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="275">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="276">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="277">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="278">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="279">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="280">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="281">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="282">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="283">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="284">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="285">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="286">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="287">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="288">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="289">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="290">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="291">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="292">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="293">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="294">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="295">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="296">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="297">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="298">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="299">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="300">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="301">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="302">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="303">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="304">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="305">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="306">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="307">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="308">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="309">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="310">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="311">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="312">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="313">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="314">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="315">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="316">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="317">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="318">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="319">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="320">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="321">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="322">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="323">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="324">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="325">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="326">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="432">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="433">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="434">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="435">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="436">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">
      </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="437">not grabbed automatically</doc>
      </member>
    </bitfield>
    <callback name="KeyHandlerFunc" c:type="MetaKeyHandlerFunc">
      <source-position filename="../src/meta/prefs.h" line="459"/>
      <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="452">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="453">a #MetaWindow</doc>
          <type name="Window" c:type="MetaWindow*"/>
        </parameter>
        <parameter name="event"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../src/meta/prefs.h"
               line="454">a #ClutterKeyEvent</doc>
          <type name="gpointer" c:type="ClutterKeyEvent*"/>
        </parameter>
        <parameter name="binding" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/meta/prefs.h"
               line="455">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="456">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="30">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="27">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="29">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="30">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="31">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="32">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="33">call at a very low priority (can be blocked
   by running animations or redrawing applications)</doc>
      </member>
    </enumeration>
    <record name="Laters" c:type="MetaLaters" disguised="1">
      <source-position filename="../src/meta/types.h" line="35"/>
      <method name="add" c:identifier="meta_laters_add">
        <doc xml:space="preserve"
             filename="../src/compositor/meta-later.c"
             line="211">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="56"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-later.c"
               line="226">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="213">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="214">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="215">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="216">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="217">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="308">Removes a callback added with meta_later_add()</doc>
        <source-position filename="../src/meta/meta-later.h" line="63"/>
        <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="310">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="311">the integer ID returned from meta_later_add()</doc>
            <type name="guint" c:type="unsigned int"/>
          </parameter>
        </parameters>
      </method>
    </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="27"/>
      <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="32"/>
        <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="36"/>
        <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">
        <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="27"/>
      <field name="parent_class">
        <type name="Gio.AppLaunchContextClass"
              c:type="GAppLaunchContextClass"/>
      </field>
    </record>
    <enumeration name="LocaleDirection"
                 glib:type-name="MetaLocaleDirection"
                 glib:get-type="meta_locale_direction_get_type"
                 c:type="MetaLocaleDirection">
      <member name="ltr"
              value="0"
              c:identifier="META_LOCALE_DIRECTION_LTR"
              glib:nick="ltr"
              glib:name="META_LOCALE_DIRECTION_LTR">
      </member>
      <member name="rtl"
              value="1"
              c:identifier="META_LOCALE_DIRECTION_RTL"
              glib:nick="rtl"
              glib:name="META_LOCALE_DIRECTION_RTL">
      </member>
    </enumeration>
    <constant name="MINI_ICON_HEIGHT"
              value="16"
              c:type="META_MINI_ICON_HEIGHT">
      <source-position filename="../src/meta/common.h" line="450"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="MINI_ICON_WIDTH" value="16" c:type="META_MINI_ICON_WIDTH">
      <source-position filename="../src/meta/common.h" line="449"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <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="73">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="74">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="75">Both</doc>
      </member>
    </bitfield>
    <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">
      <source-position filename="../src/meta/meta-monitor-manager.h"
                       line="36"/>
      <function name="get" c:identifier="meta_monitor_manager_get">
        <doc xml:space="preserve"
             filename="../src/backends/meta-monitor-manager.c"
             line="3433">Accessor for the singleton MetaMonitorManager.</doc>
        <source-position filename="../src/meta/meta-monitor-manager.h"
                         line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/backends/meta-monitor-manager.c"
               line="3438">The only #MetaMonitorManager there is.</doc>
          <type name="MonitorManager" c:type="MetaMonitorManager*"/>
        </return-value>
      </function>
      <function 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="gint"/>
        </return-value>
      </function>
      <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_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="4094">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="4096">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="4073">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="4070">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="4071">A valid connector name</doc>
            <type name="utf8" c:type="const char*"/>
          </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">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="night-light-supported" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="panel-orientation-managed"
                transfer-ownership="none"
                getter="get_panel_orientation_managed">
        <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="1599">The #MetaLogicalMonitor where the privacy screen state
                  changed</doc>
            <type/>
          </parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/backends/meta-monitor-manager.c"
                 line="1601">%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="power-save-mode-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="MonitorManagerClass"
            c:type="MetaMonitorManagerClass"
            disguised="1"
            glib:is-gtype-struct-for="MonitorManager">
      <source-position filename="../src/meta/meta-monitor-manager.h"
                       line="36"/>
    </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/common.h"
             line="319">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/common.h"
             line="320">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/common.h"
             line="321">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/common.h"
             line="322">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/common.h"
             line="323">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/common.h"
             line="324">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/common.h"
             line="325">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/common.h"
             line="326">Motion down and to the right</doc>
      </member>
    </enumeration>
    <function-macro name="PLUGIN_DECLARE"
                    c:identifier="META_PLUGIN_DECLARE"
                    introspectable="0">
      <source-position filename="../src/meta/meta-plugin.h" line="298"/>
      <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="275"/>
      <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="488"/>
      <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="502"/>
      <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="494"/>
      <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="485"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <enumeration name="PadActionType"
                 glib:type-name="MetaPadActionType"
                 glib:get-type="meta_pad_action_type_get_type"
                 c:type="MetaPadActionType">
      <member name="button"
              value="0"
              c:identifier="META_PAD_ACTION_BUTTON"
              glib:nick="button"
              glib:name="META_PAD_ACTION_BUTTON">
      </member>
      <member name="ring"
              value="1"
              c:identifier="META_PAD_ACTION_RING"
              glib:nick="ring"
              glib:name="META_PAD_ACTION_RING">
      </member>
      <member name="strip"
              value="2"
              c:identifier="META_PAD_ACTION_STRIP"
              glib:nick="strip"
              glib:name="META_PAD_ACTION_STRIP">
      </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">
      <source-position filename="../src/meta/meta-plugin.h" line="250"/>
      <function name="manager_set_plugin_type"
                c:identifier="meta_plugin_manager_set_plugin_type">
        <source-position filename="../src/meta/meta-plugin.h" line="342"/>
        <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="207"/>
        <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" introspectable="0">
        <doc xml:space="preserve"
             filename="../src/meta/meta-plugin.h"
             line="219">Virtual function called to create a "force quit" dialog
on non-responsive clients.</doc>
        <source-position filename="../src/meta/meta-plugin.h" line="227"/>
        <return-value>
          <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="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="create_inhibit_shortcuts_dialog"
                      introspectable="0">
        <doc xml:space="preserve"
             filename="../src/meta/meta-plugin.h"
             line="230">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="238"/>
        <return-value>
          <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="232">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="233">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="111">Virtual function called when the window represented by @actor is destroyed.</doc>
        <source-position filename="../src/meta/meta-plugin.h" line="117"/>
        <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="113">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="137"/>
        <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="183">Virtual function called when handling each keybinding.</doc>
        <source-position filename="../src/meta/meta-plugin.h" line="191"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/meta/meta-plugin.h"
               line="189">%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="185">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="161">Virtual function called when the workspace-switching effect needs to be
killed prematurely.</doc>
        <source-position filename="../src/meta/meta-plugin.h" line="167"/>
        <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="150">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="158"/>
        <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="152">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="241">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="249"/>
        <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="102">Virtual function called when the window represented by @actor is mapped.</doc>
        <source-position filename="../src/meta/meta-plugin.h" line="108"/>
        <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="104">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="75">Virtual function called when the window represented by @actor is minimized.</doc>
        <source-position filename="../src/meta/meta-plugin.h" line="81"/>
        <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="77">a #MetaWindowActor</doc>
            <type name="WindowActor" c:type="MetaWindowActor*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="plugin_info">
        <doc xml:space="preserve"
             filename="../src/meta/meta-plugin.h"
             line="209">Virtual function that returns information about the #MetaPlugin.</doc>
        <source-position filename="../src/meta/meta-plugin.h" line="217"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/meta/meta-plugin.h"
               line="215">a #MetaPluginInfo.</doc>
          <type name="PluginInfo" c:type="const MetaPluginInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/meta/meta-plugin.h"
                 line="211">a #MetaPlugin</doc>
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="show_tile_preview">
        <source-position filename="../src/meta/meta-plugin.h" line="133"/>
        <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="Rectangle" c:type="MetaRectangle*"/>
          </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="139"/>
        <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="145"/>
        <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="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="size_change">
        <source-position filename="../src/meta/meta-plugin.h" line="96"/>
        <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="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
          <parameter name="old_buffer_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="size_changed">
        <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>
        </parameters>
      </virtual-method>
      <virtual-method name="start">
        <doc xml:space="preserve"
             filename="../src/meta/meta-plugin.h"
             line="68">Virtual function called when the compositor starts managing a screen</doc>
        <source-position filename="../src/meta/meta-plugin.h" line="73"/>
        <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="120">Virtual function called when the window represented by @actor is destroyed.</doc>
        <source-position filename="../src/meta/meta-plugin.h" line="128"/>
        <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="122">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="123">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="124">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="84">Virtual function called when the window represented by @actor is unminimized.</doc>
        <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">
            <doc xml:space="preserve"
                 filename="../src/meta/meta-plugin.h"
                 line="86">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="169">Virtual function called when handling each event.</doc>
        <source-position filename="../src/meta/meta-plugin.h" line="180"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/meta/meta-plugin.h"
               line="175">%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">
            <type name="xlib.XEvent" c:type="XEvent*"/>
          </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="332"/>
        <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="327"/>
        <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="138">Gets the #MetaDisplay corresponding to a plugin.</doc>
        <source-position filename="../src/meta/meta-plugin.h" line="336"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-plugin.c"
               line="144">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="140">a #MetaPlugin</doc>
            <type name="Plugin" c:type="MetaPlugin*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_info" c:identifier="meta_plugin_get_info">
        <source-position filename="../src/meta/meta-plugin.h" line="270"/>
        <return-value transfer-ownership="none">
          <type name="PluginInfo" c:type="const MetaPluginInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="plugin" transfer-ownership="none">
            <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="322"/>
        <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="307"/>
        <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="317"/>
        <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="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>
        </parameters>
      </method>
      <method name="unminimize_completed"
              c:identifier="meta_plugin_unminimize_completed">
        <source-position filename="../src/meta/meta-plugin.h" line="312"/>
        <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="250"/>
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="start">
        <callback name="start">
          <source-position filename="../src/meta/meta-plugin.h" line="73"/>
          <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">
        <callback name="minimize">
          <source-position filename="../src/meta/meta-plugin.h" line="81"/>
          <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="77">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="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">
              <doc xml:space="preserve"
                   filename="../src/meta/meta-plugin.h"
                   line="86">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="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>
          </parameters>
        </callback>
      </field>
      <field name="size_change">
        <callback name="size_change">
          <source-position filename="../src/meta/meta-plugin.h" line="96"/>
          <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="Rectangle" c:type="MetaRectangle*"/>
            </parameter>
            <parameter name="old_buffer_rect" transfer-ownership="none">
              <type name="Rectangle" c:type="MetaRectangle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="map">
        <callback name="map">
          <source-position filename="../src/meta/meta-plugin.h" line="108"/>
          <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="104">a #MetaWindowActor</doc>
              <type name="WindowActor" c:type="MetaWindowActor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="destroy">
        <callback name="destroy">
          <source-position filename="../src/meta/meta-plugin.h" line="117"/>
          <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="113">a #MetaWindowActor</doc>
              <type name="WindowActor" c:type="MetaWindowActor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="switch_workspace">
        <callback name="switch_workspace">
          <source-position filename="../src/meta/meta-plugin.h" line="128"/>
          <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="122">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="123">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="124">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="133"/>
          <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="Rectangle" c:type="MetaRectangle*"/>
            </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="137"/>
          <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="139"/>
          <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="145"/>
          <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="Rectangle" c:type="MetaRectangle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="kill_window_effects">
        <callback name="kill_window_effects">
          <source-position filename="../src/meta/meta-plugin.h" line="158"/>
          <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="152">a #MetaWindowActor</doc>
              <type name="WindowActor" c:type="MetaWindowActor*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="kill_switch_workspace">
        <callback name="kill_switch_workspace">
          <source-position filename="../src/meta/meta-plugin.h" line="167"/>
          <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">
        <callback name="xevent_filter">
          <source-position filename="../src/meta/meta-plugin.h" line="180"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/meta/meta-plugin.h"
                 line="175">%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">
              <type name="xlib.XEvent" c:type="XEvent*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="keybinding_filter">
        <callback name="keybinding_filter">
          <source-position filename="../src/meta/meta-plugin.h" line="191"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/meta/meta-plugin.h"
                 line="189">%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="185">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="207"/>
          <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="plugin_info">
        <callback name="plugin_info">
          <source-position filename="../src/meta/meta-plugin.h" line="217"/>
          <return-value transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/meta/meta-plugin.h"
                 line="215">a #MetaPluginInfo.</doc>
            <type name="PluginInfo" c:type="const MetaPluginInfo*"/>
          </return-value>
          <parameters>
            <parameter name="plugin" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="../src/meta/meta-plugin.h"
                   line="211">a #MetaPlugin</doc>
              <type name="Plugin" c:type="MetaPlugin*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="create_close_dialog" introspectable="0">
        <callback name="create_close_dialog" introspectable="0">
          <source-position filename="../src/meta/meta-plugin.h" line="227"/>
          <return-value>
            <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="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="create_inhibit_shortcuts_dialog" introspectable="0">
        <callback name="create_inhibit_shortcuts_dialog" introspectable="0">
          <source-position filename="../src/meta/meta-plugin.h" line="238"/>
          <return-value>
            <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="232">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="233">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="249"/>
          <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>
    <record name="PluginInfo" c:type="MetaPluginInfo">
      <source-position filename="../src/meta/meta-plugin.h" line="267"/>
      <field name="name" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/meta-plugin.h"
             line="254">name of the plugin</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="version" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/meta-plugin.h"
             line="255">version of the plugin</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="author" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/meta-plugin.h"
             line="256">author of the plugin</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="license" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/meta-plugin.h"
             line="257">license of the plugin</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
      <field name="description" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/meta-plugin.h"
             line="258">description of the plugin</doc>
        <type name="utf8" c:type="const gchar*"/>
      </field>
    </record>
    <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="35">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="36">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="37">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="38">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="39">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="40">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="41">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="42">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="43">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="44">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="45">focus change on pointer rest</doc>
      </member>
      <member name="titlebar_font"
              value="11"
              c:identifier="META_PREF_TITLEBAR_FONT"
              glib:nick="titlebar-font"
              glib:name="META_PREF_TITLEBAR_FONT">
        <doc xml:space="preserve"
             filename="../src/meta/prefs.h"
             line="46">title-bar font</doc>
      </member>
      <member name="num_workspaces"
              value="12"
              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="47">number of workspaces</doc>
      </member>
      <member name="dynamic_workspaces"
              value="13"
              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="48">dynamic workspaces</doc>
      </member>
      <member name="keybindings"
              value="14"
              c:identifier="META_PREF_KEYBINDINGS"
              glib:nick="keybindings"
              glib:name="META_PREF_KEYBINDINGS">
        <doc xml:space="preserve"
             filename="../src/meta/prefs.h"
             line="49">keybindings</doc>
      </member>
      <member name="disable_workarounds"
              value="15"
              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="50">disable workarounds</doc>
      </member>
      <member name="button_layout"
              value="16"
              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="51">button layout</doc>
      </member>
      <member name="workspace_names"
              value="17"
              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="52">workspace names</doc>
      </member>
      <member name="visual_bell"
              value="18"
              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="53">visual bell</doc>
      </member>
      <member name="audible_bell"
              value="19"
              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="54">audible bell</doc>
      </member>
      <member name="visual_bell_type"
              value="20"
              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="55">visual bell type</doc>
      </member>
      <member name="gnome_accessibility"
              value="21"
              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="56">GNOME accessibility</doc>
      </member>
      <member name="gnome_animations"
              value="22"
              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="57">GNOME animations</doc>
      </member>
      <member name="cursor_theme"
              value="23"
              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="58">cursor theme</doc>
      </member>
      <member name="cursor_size"
              value="24"
              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="59">cursor size</doc>
      </member>
      <member name="resize_with_right_button"
              value="25"
              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="60">resize with right button</doc>
      </member>
      <member name="edge_tiling"
              value="26"
              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="61">edge tiling</doc>
      </member>
      <member name="force_fullscreen"
              value="27"
              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="62">force fullscreen</doc>
      </member>
      <member name="workspaces_only_on_primary"
              value="28"
              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="63">workspaces only on primary</doc>
      </member>
      <member name="draggable_border_width"
              value="29"
              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="64">draggable border width</doc>
      </member>
      <member name="auto_maximize"
              value="30"
              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="65">auto-maximize</doc>
      </member>
      <member name="center_new_windows"
              value="31"
              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="66">center new windows</doc>
      </member>
      <member name="drag_threshold"
              value="32"
              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="67">drag threshold</doc>
      </member>
      <member name="locate_pointer"
              value="33"
              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="68">show pointer location</doc>
      </member>
      <member name="check_alive_timeout"
              value="34"
              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="123"/>
        <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="111"/>
      <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>
    <function-macro name="RECTANGLE_INIT"
                    c:identifier="META_RECTANGLE_INIT"
                    introspectable="0">
      <source-position filename="../src/meta/boxes.h" line="57"/>
      <parameters>
        <parameter name="_x">
        </parameter>
        <parameter name="_y">
        </parameter>
        <parameter name="_width">
        </parameter>
        <parameter name="_height">
        </parameter>
      </parameters>
    </function-macro>
    <record name="Rectangle"
            c:type="MetaRectangle"
            glib:type-name="MetaRectangle"
            glib:get-type="meta_rectangle_get_type"
            c:symbol-prefix="rectangle">
      <source-position filename="../src/meta/boxes.h" line="51"/>
      <field name="x" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/boxes.h"
             line="32">X coordinate of the top-left corner</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="y" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/boxes.h"
             line="33">Y coordinate of the top-left corner</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="width" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/boxes.h"
             line="34">Width of the rectangle</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="height" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/boxes.h"
             line="35">Height of the rectangle</doc>
        <type name="gint" c:type="int"/>
      </field>
      <method name="area" c:identifier="meta_rectangle_area">
        <source-position filename="../src/meta/boxes.h" line="119"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="contains_rect" c:identifier="meta_rectangle_contains_rect">
        <source-position filename="../src/meta/boxes.h" line="164"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="outer_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </instance-parameter>
          <parameter name="inner_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="meta_rectangle_copy">
        <source-position filename="../src/meta/boxes.h" line="108"/>
        <return-value transfer-ownership="full">
          <type name="Rectangle" c:type="MetaRectangle*"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="could_fit_rect"
              c:identifier="meta_rectangle_could_fit_rect">
        <source-position filename="../src/meta/boxes.h" line="160"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="outer_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </instance-parameter>
          <parameter name="inner_rect" transfer-ownership="none">
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="meta_rectangle_equal">
        <source-position filename="../src/meta/boxes.h" line="127"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="src1" transfer-ownership="none">
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </instance-parameter>
          <parameter name="src2" transfer-ownership="none">
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="meta_rectangle_free">
        <source-position filename="../src/meta/boxes.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect" transfer-ownership="none">
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="horiz_overlap" c:identifier="meta_rectangle_horiz_overlap">
        <source-position filename="../src/meta/boxes.h" line="153"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect1" transfer-ownership="none">
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </instance-parameter>
          <parameter name="rect2" transfer-ownership="none">
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="intersect" c:identifier="meta_rectangle_intersect">
        <source-position filename="../src/meta/boxes.h" line="122"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/boxes.c"
               line="188">TRUE is some intersection exists and is not degenerate, FALSE
  otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="src1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/boxes.c"
                 line="183">a #MetaRectangle</doc>
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </instance-parameter>
          <parameter name="src2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/boxes.c"
                 line="184">another #MetaRectangle</doc>
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </parameter>
          <parameter name="dest"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/boxes.c"
                 line="185">an empty #MetaRectangle, to be filled
  with the coordinates of the intersection.</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="overlap" c:identifier="meta_rectangle_overlap">
        <source-position filename="../src/meta/boxes.h" line="140"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect1" transfer-ownership="none">
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </instance-parameter>
          <parameter name="rect2" transfer-ownership="none">
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="union" c:identifier="meta_rectangle_union">
        <source-position filename="../src/meta/boxes.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/boxes.c"
                 line="240">a #MetaRectangle</doc>
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </instance-parameter>
          <parameter name="rect2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/boxes.c"
                 line="241">another #MetaRectangle</doc>
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </parameter>
          <parameter name="dest"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/boxes.c"
                 line="242">an empty #MetaRectangle, to be filled
  with the coordinates of the bounding box.</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="vert_overlap" c:identifier="meta_rectangle_vert_overlap">
        <source-position filename="../src/meta/boxes.h" line="149"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="rect1" transfer-ownership="none">
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </instance-parameter>
          <parameter name="rect2" transfer-ownership="none">
            <type name="Rectangle" c:type="const MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <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="52"/>
      <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="146">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="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="148">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="162">Uninhibits remote access sessions from being created and running. If this was
the last inhibitation that was inhibited, new remote access sessions can now
be created.</doc>
        <source-position filename="../src/meta/meta-remote-access-controller.h"
                         line="61"/>
        <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="164">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="52"/>
      <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="41"/>
      <virtual-method name="stop" invoker="stop">
        <doc xml:space="preserve"
             filename="../src/backends/meta-remote-access-controller.c"
             line="84">Stop the associated remote access session.</doc>
        <source-position filename="../src/meta/meta-remote-access-controller.h"
                         line="40"/>
        <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="86">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="47"/>
        <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="84">Stop the associated remote access session.</doc>
        <source-position filename="../src/meta/meta-remote-access-controller.h"
                         line="44"/>
        <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="86">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">
        <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="41"/>
      <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="40"/>
          <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="86">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="34"/>
      <constructor name="new" c:identifier="meta_selection_new">
        <source-position filename="../src/meta/meta-selection.h" line="41"/>
        <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="159">Returns the list of supported mimetypes for the given selection type.</doc>
        <source-position filename="../src/meta/meta-selection.h" line="53"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/core/meta-selection.c"
               line="166">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="161">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="162">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="105">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="44"/>
        <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="107">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="108">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="109">New selection owner</doc>
            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
          </parameter>
        </parameters>
      </method>
      <method name="transfer_async"
              c:identifier="meta_selection_transfer_async">
        <doc xml:space="preserve"
             filename="../src/core/meta-selection.c"
             line="406">Requests a transfer of @mimetype on the selection given by
@selection_type.</doc>
        <source-position filename="../src/meta/meta-selection.h" line="57"/>
        <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="408">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="409">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="410">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="411">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="412">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="413">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="414">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="415">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="460">Finishes the transfer of a queried mimetype.</doc>
        <source-position filename="../src/meta/meta-selection.h" line="66"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/meta-selection.c"
               line="468">#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="462">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="463">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="133">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="48"/>
        <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="135">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="136">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="137">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="34"/>
      <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="65"/>
      <virtual-method name="activated">
        <source-position filename="../src/meta/meta-selection-source.h"
                         line="52"/>
        <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="53"/>
        <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="133">Returns the list of supported mimetypes.</doc>
        <source-position filename="../src/meta/meta-selection-source.h"
                         line="55"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/core/meta-selection-source.c"
               line="139">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="135">The selection source</doc>
            <type name="SelectionSource" c:type="MetaSelectionSource*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="read_async" invoker="read_async">
        <source-position filename="../src/meta/meta-selection-source.h"
                         line="57"/>
        <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="110">Finishes a read from the selection source.</doc>
        <source-position filename="../src/meta/meta-selection-source.h"
                         line="62"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/core/meta-selection-source.c"
               line="118">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="112">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="113">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="133">Returns the list of supported mimetypes.</doc>
        <source-position filename="../src/meta/meta-selection-source.h"
                         line="80"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/core/meta-selection-source.c"
               line="139">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="135">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="149">Returns #TRUE if the source is active on a selection.</doc>
        <source-position filename="../src/meta/meta-selection-source.h"
                         line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/meta-selection-source.c"
               line="155">#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="151">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">
        <source-position filename="../src/meta/meta-selection-source.h"
                         line="68"/>
        <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="110">Finishes a read from the selection source.</doc>
        <source-position filename="../src/meta/meta-selection-source.h"
                         line="75"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/core/meta-selection-source.c"
               line="118">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="112">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="113">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="65"/>
      <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="52"/>
          <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="53"/>
          <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="55"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../src/core/meta-selection-source.c"
                 line="139">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="135">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="57"/>
          <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="62"/>
          <return-value transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../src/core/meta-selection-source.c"
                 line="118">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="112">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="113">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="30"/>
      <constructor name="new" c:identifier="meta_selection_source_memory_new">
        <source-position filename="../src/meta/meta-selection-source-memory.h"
                         line="36"/>
        <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="30"/>
      <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">
      <source-position filename="../src/meta/types.h" line="45"/>
      <method name="get_font_dpi" c:identifier="meta_settings_get_font_dpi">
        <source-position filename="../src/meta/meta-settings.h" line="32"/>
        <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="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>
    </record>
    <record name="Shadow"
            c:type="MetaShadow"
            glib:type-name="MetaShadow"
            glib:get-type="meta_shadow_get_type"
            c:symbol-prefix="shadow">
      <doc xml:space="preserve"
           filename="../src/meta/meta-shadow-factory.h"
           line="91">#MetaShadow holds a shadow texture along with information about how to
apply that texture to draw a window texture. (E.g., it knows how big the
unscaled borders are on each side of the shadow texture.)</doc>
      <source-position filename="../src/meta/meta-shadow-factory.h" line="97"/>
      <method name="get_bounds" c:identifier="meta_shadow_get_bounds">
        <doc xml:space="preserve"
             filename="../src/compositor/meta-shadow-factory.c"
             line="361">Computes the bounds of the pixels that will be affected by
meta_shadow_paint()</doc>
        <source-position filename="../src/meta/meta-shadow-factory.h"
                         line="117"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="shadow" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="363">a #MetaShadow</doc>
            <type name="Shadow" c:type="MetaShadow*"/>
          </instance-parameter>
          <parameter name="window_x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="364">x position of the region to paint a shadow for</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="window_y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="365">y position of the region to paint a shadow for</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="window_width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="366">actual width of the region to paint a shadow for</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="window_height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="367">actual height of the region to paint a shadow for</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="bounds" transfer-ownership="none">
            <type name="cairo.RectangleInt" c:type="cairo_rectangle_int_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="paint" c:identifier="meta_shadow_paint">
        <doc xml:space="preserve"
             filename="../src/compositor/meta-shadow-factory.c"
             line="183">Paints the shadow at the given position, for the specified actual
size of the region. (Since a #MetaShadow can be shared between
different sizes with the same extracted #MetaWindowShape the
size needs to be passed in here.)</doc>
        <source-position filename="../src/meta/meta-shadow-factory.h"
                         line="106"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="shadow" transfer-ownership="none">
            <type name="Shadow" c:type="MetaShadow*"/>
          </instance-parameter>
          <parameter name="framebuffer" transfer-ownership="none">
            <type name="Cogl.Framebuffer" c:type="CoglFramebuffer*"/>
          </parameter>
          <parameter name="window_x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="185">x position of the region to paint a shadow for</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="window_y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="186">y position of the region to paint a shadow for</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="window_width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="187">actual width of the region to paint a shadow for</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="window_height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="188">actual height of the region to paint a shadow for</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="opacity" transfer-ownership="none">
            <type name="guint8" c:type="guint8"/>
          </parameter>
          <parameter name="clip"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="189">if non-%NULL specifies the visible portion
  of the shadow.</doc>
            <type name="cairo.Region" c:type="cairo_region_t*"/>
          </parameter>
          <parameter name="clip_strictly" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="191">if %TRUE, drawing will be clipped strictly
  to @clip, otherwise, it will be only used to optimize
  drawing.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="meta_shadow_ref">
        <source-position filename="../src/meta/meta-shadow-factory.h"
                         line="100"/>
        <return-value transfer-ownership="full">
          <type name="Shadow" c:type="MetaShadow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="shadow" transfer-ownership="none">
            <type name="Shadow" c:type="MetaShadow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="meta_shadow_unref">
        <source-position filename="../src/meta/meta-shadow-factory.h"
                         line="103"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="shadow" transfer-ownership="none">
            <type name="Shadow" c:type="MetaShadow*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="ShadowFactory"
           c:symbol-prefix="shadow_factory"
           c:type="MetaShadowFactory"
           parent="GObject.Object"
           glib:type-name="MetaShadowFactory"
           glib:get-type="meta_shadow_factory_get_type"
           glib:type-struct="ShadowFactoryClass">
      <doc xml:space="preserve"
           filename="../src/meta/meta-shadow-factory.h"
           line="69">#MetaShadowFactory is used to create window shadows. It caches shadows internally
so that multiple shadows created for the same shape with the same radius will
share the same MetaShadow.</doc>
      <source-position filename="../src/meta/meta-shadow-factory.h" line="64"/>
      <constructor name="new" c:identifier="meta_shadow_factory_new">
        <source-position filename="../src/meta/meta-shadow-factory.h"
                         line="125"/>
        <return-value transfer-ownership="full">
          <type name="ShadowFactory" c:type="MetaShadowFactory*"/>
        </return-value>
      </constructor>
      <function name="get_default"
                c:identifier="meta_shadow_factory_get_default">
        <source-position filename="../src/meta/meta-shadow-factory.h"
                         line="77"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-shadow-factory.c"
               line="465">the global singleton shadow factory</doc>
          <type name="ShadowFactory" c:type="MetaShadowFactory*"/>
        </return-value>
      </function>
      <method name="get_params" c:identifier="meta_shadow_factory_get_params">
        <doc xml:space="preserve"
             filename="../src/compositor/meta-shadow-factory.c"
             line="1036">Gets the shadow parameters for a particular class of shadows
for either the focused or unfocused state. If the class name
does not name an existing class, default values will be returned
without printing an error.</doc>
        <source-position filename="../src/meta/meta-shadow-factory.h"
                         line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="1038">a #MetaShadowFactory</doc>
            <type name="ShadowFactory" c:type="MetaShadowFactory*"/>
          </instance-parameter>
          <parameter name="class_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="1039">name of the class of shadow to get the params for</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="focused" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="1040">whether the shadow is for a focused window</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="params"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="1041">location to store the current parameter values</doc>
            <type name="ShadowParams" c:type="MetaShadowParams*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_shadow" c:identifier="meta_shadow_factory_get_shadow">
        <doc xml:space="preserve"
             filename="../src/compositor/meta-shadow-factory.c"
             line="859">Gets the appropriate shadow object for drawing shadows for the
specified window shape. The region that we are shadowing is specified
as a combination of a size-invariant extracted shape and the size.
In some cases, the same shadow object can be shared between sizes;
in other cases a different shadow object is used for each size.</doc>
        <source-position filename="../src/meta/meta-shadow-factory.h"
                         line="128"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-shadow-factory.c"
               line="874">a newly referenced #MetaShadow; unref with
 meta_shadow_unref()</doc>
          <type name="Shadow" c:type="MetaShadow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="861">a #MetaShadowFactory</doc>
            <type name="ShadowFactory" c:type="MetaShadowFactory*"/>
          </instance-parameter>
          <parameter name="shape" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="862">the size-invariant shape of the window's region</doc>
            <type name="WindowShape" c:type="MetaWindowShape*"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="863">the actual width of the window's region</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="864">the actual height of the window's region</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="class_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="865">name of the class of window shadows</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="focused" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="866">whether the shadow is for a focused window</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_params" c:identifier="meta_shadow_factory_set_params">
        <doc xml:space="preserve"
             filename="../src/compositor/meta-shadow-factory.c"
             line="999">Updates the shadow parameters for a particular class of shadows
for either the focused or unfocused state. If the class name
does not name an existing class, a new class will be created
(the other focus state for that class will have default values
assigned to it.)</doc>
        <source-position filename="../src/meta/meta-shadow-factory.h"
                         line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="1001">a #MetaShadowFactory</doc>
            <type name="ShadowFactory" c:type="MetaShadowFactory*"/>
          </instance-parameter>
          <parameter name="class_name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="1002">name of the class of shadow to set the params for.
 the default shadow classes are the names of the different
 theme frame types (normal, dialog, modal_dialog, utility,
 border, menu, attached) and in addition, popup-menu
 and dropdown-menu.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="focused" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="1007">whether the shadow is for a focused window</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="params" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shadow-factory.c"
                 line="1008">new parameter values</doc>
            <type name="ShadowParams" c:type="MetaShadowParams*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ShadowFactoryClass"
            c:type="MetaShadowFactoryClass"
            glib:is-gtype-struct-for="ShadowFactory">
      <source-position filename="../src/meta/meta-shadow-factory.h" line="64"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="ShadowMode"
                 glib:type-name="MetaShadowMode"
                 glib:get-type="meta_shadow_mode_get_type"
                 c:type="MetaShadowMode">
      <member name="auto"
              value="0"
              c:identifier="META_SHADOW_MODE_AUTO"
              glib:nick="auto"
              glib:name="META_SHADOW_MODE_AUTO">
      </member>
      <member name="forced_off"
              value="1"
              c:identifier="META_SHADOW_MODE_FORCED_OFF"
              glib:nick="forced-off"
              glib:name="META_SHADOW_MODE_FORCED_OFF">
      </member>
      <member name="forced_on"
              value="2"
              c:identifier="META_SHADOW_MODE_FORCED_ON"
              glib:nick="forced-on"
              glib:name="META_SHADOW_MODE_FORCED_ON">
      </member>
    </enumeration>
    <record name="ShadowParams" c:type="MetaShadowParams">
      <doc xml:space="preserve"
           filename="../src/meta/meta-shadow-factory.h"
           line="35">The #MetaShadowParams structure holds information about how to draw
a particular style of shadow.</doc>
      <source-position filename="../src/meta/meta-shadow-factory.h" line="59"/>
      <field name="radius" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/meta-shadow-factory.h"
             line="37">the radius (gaussian standard deviation) of the shadow</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="top_fade" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/meta-shadow-factory.h"
             line="38">if &gt;= 0, the shadow doesn't extend above the top
 of the shape, and fades out over the given number of pixels</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="x_offset" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/meta-shadow-factory.h"
             line="40">horizontal offset of the shadow with respect to the
 shape being shadowed, in pixels</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="y_offset" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/meta-shadow-factory.h"
             line="42">vertical offset of the shadow with respect to the
 shape being shadowed, in pixels</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="opacity" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/meta-shadow-factory.h"
             line="44">opacity of the shadow, from 0 to 255</doc>
        <type name="guint8" c:type="guint8"/>
      </field>
    </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">
      <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="1319">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="1330">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="1321">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="1322">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="cairo.RectangleInt" c:type="cairo_rectangle_int_t*"/>
          </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="1097">the unshaped texture</doc>
          <type name="Cogl.Texture" c:type="CoglTexture*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stex" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-shaped-texture.c"
                 line="1095">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>
      <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/common.h"
             line="347">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/common.h"
             line="348">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/common.h"
             line="349">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/common.h"
             line="350">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="31"/>
      <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="283">Plays a sound from a file.</doc>
        <source-position filename="../src/meta/meta-sound-player.h" line="41"/>
        <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="285">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="286">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="287">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="288">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="247">Plays a sound from the sound theme.</doc>
        <source-position filename="../src/meta/meta-sound-player.h" line="35"/>
        <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="249">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="250">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="251">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="252">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="31"/>
      <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/common.h"
           line="506">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/common.h"
             line="508">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/common.h"
             line="509">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/common.h"
             line="510">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/common.h"
             line="511">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/common.h"
             line="512">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/common.h"
             line="513">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/common.h"
             line="514">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="30"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <function name="is_focused" c:identifier="meta_stage_is_focused">
        <source-position filename="../src/meta/compositor-mutter.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="MetaDisplay*"/>
          </parameter>
        </parameters>
      </function>
      <glib:signal name="actors-painted" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="StageClass"
            c:type="MetaStageClass"
            glib:is-gtype-struct-for="Stage">
      <source-position filename="../src/meta/meta-stage.h" line="30"/>
      <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="28"/>
      <method name="create_launcher"
              c:identifier="meta_startup_notification_create_launcher">
        <doc xml:space="preserve"
             filename="../src/core/startup-notification.c"
             line="713">Creates an app launch context.</doc>
        <source-position filename="../src/meta/meta-startup-notification.h"
                         line="44"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/core/startup-notification.c"
               line="719">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="715">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="698">Get the list of startup sequences arrived in the startup notification object.</doc>
        <source-position filename="../src/meta/meta-startup-notification.h"
                         line="40"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/startup-notification.c"
               line="704">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="700">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="28"/>
      <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="34"/>
      <method name="complete" c:identifier="meta_startup_sequence_complete">
        <source-position filename="../src/meta/meta-startup-notification.h"
                         line="71"/>
        <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="420">Get the application id of the startup sequence.</doc>
        <source-position filename="../src/meta/meta-startup-notification.h"
                         line="65"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/startup-notification.c"
               line="426">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="422">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="50"/>
        <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="401">Get the icon name of the startup sequence.</doc>
        <source-position filename="../src/meta/meta-startup-notification.h"
                         line="62"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/startup-notification.c"
               line="407">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="403">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="47"/>
        <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="53"/>
        <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="59"/>
        <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="439">Get the wmclass of the startup sequence.</doc>
        <source-position filename="../src/meta/meta-startup-notification.h"
                         line="68"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/startup-notification.c"
               line="445">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="441">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="56"/>
        <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">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="icon-name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_icon_name">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="id"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_id">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_name">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="timestamp"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_timestamp">
        <type name="guint64" c:type="guint64"/>
      </property>
      <property name="wmclass"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_wmclass">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="workspace"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_workspace">
        <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"
            glib:is-gtype-struct-for="StartupSequence">
      <source-position filename="../src/meta/meta-startup-notification.h"
                       line="34"/>
    </record>
    <record name="Strut" c:type="MetaStrut">
      <source-position filename="../src/meta/boxes.h" line="75"/>
      <field name="rect" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/boxes.h"
             line="67">#MetaRectangle the #MetaStrut is on</doc>
        <type name="Rectangle" c:type="MetaRectangle"/>
      </field>
      <field name="side" writable="1">
        <doc xml:space="preserve"
             filename="../src/meta/boxes.h"
             line="68">#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="35">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="36">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="37">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="38">All windows</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>
    <record name="Theme" c:type="MetaTheme" disguised="1">
      <source-position filename="../src/meta/theme.h" line="31"/>
      <method name="free" c:identifier="meta_theme_free">
        <source-position filename="../src/meta/theme.h" line="40"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="theme" transfer-ownership="none">
            <type name="Theme" c:type="MetaTheme*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="get_default"
                c:identifier="meta_theme_get_default"
                introspectable="0">
        <source-position filename="../src/meta/theme.h" line="34"/>
        <return-value>
          <type name="Theme" c:type="MetaTheme*"/>
        </return-value>
      </function>
      <function name="new" c:identifier="meta_theme_new" introspectable="0">
        <source-position filename="../src/meta/theme.h" line="37"/>
        <return-value>
          <type name="Theme" c:type="MetaTheme*"/>
        </return-value>
      </function>
    </record>
    <constant name="VIRTUAL_CORE_KEYBOARD_ID"
              value="3"
              c:type="META_VIRTUAL_CORE_KEYBOARD_ID">
      <source-position filename="../src/meta/common.h" line="44"/>
      <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="43"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <bitfield name="VirtualModifier"
              glib:type-name="MetaVirtualModifier"
              glib:get-type="meta_virtual_modifier_get_type"
              c:type="MetaVirtualModifier">
      <member name="shift_mask"
              value="32"
              c:identifier="META_VIRTUAL_SHIFT_MASK"
              glib:nick="shift-mask"
              glib:name="META_VIRTUAL_SHIFT_MASK">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="255">Shift mask</doc>
      </member>
      <member name="control_mask"
              value="64"
              c:identifier="META_VIRTUAL_CONTROL_MASK"
              glib:nick="control-mask"
              glib:name="META_VIRTUAL_CONTROL_MASK">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="256">Control mask</doc>
      </member>
      <member name="alt_mask"
              value="128"
              c:identifier="META_VIRTUAL_ALT_MASK"
              glib:nick="alt-mask"
              glib:name="META_VIRTUAL_ALT_MASK">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="257">Alt mask</doc>
      </member>
      <member name="meta_mask"
              value="256"
              c:identifier="META_VIRTUAL_META_MASK"
              glib:nick="meta-mask"
              glib:name="META_VIRTUAL_META_MASK">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="258">Meta mask</doc>
      </member>
      <member name="super_mask"
              value="512"
              c:identifier="META_VIRTUAL_SUPER_MASK"
              glib:nick="super-mask"
              glib:name="META_VIRTUAL_SUPER_MASK">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="259">Super mask</doc>
      </member>
      <member name="hyper_mask"
              value="1024"
              c:identifier="META_VIRTUAL_HYPER_MASK"
              glib:nick="hyper-mask"
              glib:name="META_VIRTUAL_HYPER_MASK">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="260">Hyper mask</doc>
      </member>
      <member name="mod2_mask"
              value="2048"
              c:identifier="META_VIRTUAL_MOD2_MASK"
              glib:nick="mod2-mask"
              glib:name="META_VIRTUAL_MOD2_MASK">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="261">Mod2 mask</doc>
      </member>
      <member name="mod3_mask"
              value="4096"
              c:identifier="META_VIRTUAL_MOD3_MASK"
              glib:nick="mod3-mask"
              glib:name="META_VIRTUAL_MOD3_MASK">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="262">Mod3 mask</doc>
      </member>
      <member name="mod4_mask"
              value="8192"
              c:identifier="META_VIRTUAL_MOD4_MASK"
              glib:nick="mod4-mask"
              glib:name="META_VIRTUAL_MOD4_MASK">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="263">Mod4 mask</doc>
      </member>
      <member name="mod5_mask"
              value="16384"
              c:identifier="META_VIRTUAL_MOD5_MASK"
              glib:nick="mod5-mask"
              glib:name="META_VIRTUAL_MOD5_MASK">
        <doc xml:space="preserve"
             filename="../src/meta/common.h"
             line="264">Mod5 mask</doc>
      </member>
    </bitfield>
    <function-macro name="WINDOW"
                    c:identifier="META_WINDOW"
                    introspectable="0">
      <source-position filename="../src/meta/window.h" line="96"/>
      <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="97"/>
      <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="100"/>
      <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="28"/>
      <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="29"/>
      <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="32"/>
      <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">
      <source-position filename="../src/meta/meta-wayland-client.h" line="34"/>
      <constructor name="new"
                   c:identifier="meta_wayland_client_new"
                   throws="1">
        <doc xml:space="preserve"
             filename="../src/wayland/meta-wayland-client.c"
             line="104">Creates a new #MetaWaylandClient. The GSubprocesslauncher passed is
stored internally and will be used to launch the subprocess.</doc>
        <source-position filename="../src/meta/meta-wayland-client.h"
                         line="37"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/wayland/meta-wayland-client.c"
               line="112">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="launcher" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/wayland/meta-wayland-client.c"
                 line="106">a GSubprocessLauncher to use to launch the subprocess</doc>
            <type name="Gio.SubprocessLauncher" c:type="GSubprocessLauncher*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="hide_from_window_list"
              c:identifier="meta_wayland_client_hide_from_window_list">
        <source-position filename="../src/meta/meta-wayland-client.h"
                         line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="WaylandClient" c:type="MetaWaylandClient*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="owns_window"
              c:identifier="meta_wayland_client_owns_window">
        <source-position filename="../src/meta/meta-wayland-client.h"
                         line="54"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <type name="WaylandClient" c:type="MetaWaylandClient*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_in_window_list"
              c:identifier="meta_wayland_client_show_in_window_list">
        <doc xml:space="preserve"
             filename="../src/wayland/meta-wayland-client.c"
             line="327">Shows again this window in window lists, like taskbars, pagers...</doc>
        <source-position filename="../src/meta/meta-wayland-client.h"
                         line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="client" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/wayland/meta-wayland-client.c"
                 line="329">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="330">a MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="spawn"
              c:identifier="meta_wayland_client_spawn"
              introspectable="0">
        <doc xml:space="preserve"
             filename="../src/wayland/meta-wayland-client.c"
             line="230">Creates a #GSubprocess given a provided varargs list of arguments. 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="41"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/wayland/meta-wayland-client.c"
               line="242">A new #GSubprocess, or %NULL on error (and @error
will be set)</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="232">a #MetaWaylandClient</doc>
            <type name="WaylandClient" c:type="MetaWaylandClient*"/>
          </instance-parameter>
          <parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/wayland/meta-wayland-client.c"
                 line="233">the current MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </parameter>
          <parameter name="error"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../src/wayland/meta-wayland-client.c"
                 line="234">Error</doc>
            <type name="GLib.Error" c:type="GError**"/>
          </parameter>
          <parameter name="argv0" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/wayland/meta-wayland-client.c"
                 line="235">Command line arguments</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/wayland/meta-wayland-client.c"
                 line="236">Continued arguments, %NULL terminated</doc>
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="spawnv"
              c:identifier="meta_wayland_client_spawnv"
              throws="1">
        <doc xml:space="preserve"
             filename="../src/wayland/meta-wayland-client.c"
             line="146">Creates a #GSubprocess given a provided array of arguments, launching 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="48"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/wayland/meta-wayland-client.c"
               line="158">A new #GSubprocess, or %NULL on error (and @error
will be set)</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="148">a #MetaWaylandClient</doc>
            <type name="WaylandClient" c:type="MetaWaylandClient*"/>
          </instance-parameter>
          <parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/wayland/meta-wayland-client.c"
                 line="149">the current MetaDisplay</doc>
            <type name="Display" c:type="MetaDisplay*"/>
          </parameter>
          <parameter name="argv" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/wayland/meta-wayland-client.c"
                 line="150">Command line arguments</doc>
            <array c:type="const char* const*">
              <type name="filename"/>
            </array>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="WaylandClientClass"
            c:type="MetaWaylandClientClass"
            glib:is-gtype-struct-for="WaylandClient">
      <source-position filename="../src/meta/meta-wayland-client.h" line="34"/>
      <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">
      <source-position filename="../src/meta/window.h" line="104"/>
      <method name="activate" c:identifier="meta_window_activate">
        <source-position filename="../src/meta/window.h" line="169"/>
        <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="172"/>
        <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="436"/>
        <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="439"/>
        <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="7066">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="116"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7074">%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="7068">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="412"/>
        <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="op" transfer-ownership="none">
            <type name="GrabOp" c:type="MetaGrabOp"/>
          </parameter>
          <parameter name="frame_action" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="can_close" c:identifier="meta_window_can_close">
        <source-position filename="../src/meta/window.h" line="427"/>
        <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="418"/>
        <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="421"/>
        <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_shade" c:identifier="meta_window_can_shade">
        <source-position filename="../src/meta/window.h" line="424"/>
        <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="236"/>
        <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="231"/>
        <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="395"/>
        <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="4318">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="134"/>
        <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="4320">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="4321">client rectangle in root coordinates</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
          <parameter name="frame_rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/window.c"
                 line="4322">location to store the computed corresponding frame bounds.</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="compute_group" c:identifier="meta_window_compute_group">
        <source-position filename="../src/meta/group.h" line="36"/>
        <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="delete" c:identifier="meta_window_delete">
        <source-position filename="../src/meta/window.h" line="325"/>
        <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="4875">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="252"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="4882">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="4877">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="391"/>
        <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="6578">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="267"/>
        <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="6580">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="6581">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="6582">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="6539">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="262"/>
        <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="6541">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="6542">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="6543">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="4365">Converts a desired frame bounds for a window into the bounds of the client
window.</doc>
        <source-position filename="../src/meta/window.h" line="139"/>
        <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="4367">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="4368">desired frame bounds for the window</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
          <parameter name="client_rect"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/window.c"
                 line="4369">location to store the computed corresponding client rectangle.</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </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="4298">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="128"/>
        <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="4300">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="4301">pointer to an allocated #MetaRectangle</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_client_machine"
              c:identifier="meta_window_get_client_machine">
        <doc xml:space="preserve"
             filename="../src/core/window.c"
             line="7505">Returns name of the client machine from which this windows was created,
if known (obtained from the WM_CLIENT_MACHINE property).</doc>
        <source-position filename="../src/meta/window.h" line="338"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7512">the machine name, or %NULL; the string
is owned by the window manager and should not be freed or modified by the
caller.</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="7507">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-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="8565">Returns the #MetaWindowClientType of the window.</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="8571">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="8567">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="7332">Gets the compositor's wrapper object for @window.</doc>
        <source-position filename="../src/meta/window.h" line="240"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7338">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="7334">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="177"/>
        <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">
        <source-position filename="../src/meta/window.h" line="144"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7128">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="7126">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_frame"
              c:identifier="meta_window_get_frame"
              introspectable="0">
        <source-position filename="../src/meta/window.h" line="110"/>
        <return-value>
          <type name="Frame" c:type="MetaFrame*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/window.c"
                 line="7057">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_frame_bounds"
              c:identifier="meta_window_get_frame_bounds">
        <doc xml:space="preserve"
             filename="../src/core/window.c"
             line="7633">Gets a region representing the outer bounds of the window's frame.</doc>
        <source-position filename="../src/meta/window.h" line="356"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7639">a #cairo_region_t
 holding the outer bounds of the window, or %NULL if the window
 doesn't have a frame.</doc>
          <type name="cairo.Region" c:type="cairo_region_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/window.c"
                 line="7635">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="4404">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="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="4406">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="4407">pointer to an allocated #MetaRectangle</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </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="7563">Gets the type of window decorations that should be used for this window.</doc>
        <source-position filename="../src/meta/window.h" line="353"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7569">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="7565">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_group"
              c:identifier="meta_window_get_group"
              introspectable="0">
        <source-position filename="../src/meta/group.h" line="33"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/x11/group.c"
               line="132">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/group.c"
                 line="130">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="207"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7312">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="7310">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="195"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7264">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="7262">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="201"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7288">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="7286">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="210"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7324">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="7322">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="192"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7252">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="7250">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="198"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7276">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="7274">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="204"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7300">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="7298">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="5237">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="287"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="5246">%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="5239">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="5240">rectangle into which to store the returned geometry.</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="meta_window_get_id">
        <doc xml:space="preserve"
             filename="../src/core/window.c"
             line="8551">Returns the window id associated with window.</doc>
        <source-position filename="../src/meta/window.h" line="451"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="8557">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="8553">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="249"/>
        <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_maximized" c:identifier="meta_window_get_maximized">
        <doc xml:space="preserve"
             filename="../src/core/window.c"
             line="2709">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="272"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="2716">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="2711">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="3622">Gets index of the monitor that this window is on.</doc>
        <source-position filename="../src/meta/window.h" line="156"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="3628">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="3624">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="7537">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="350"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7552">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="7539">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="7413">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="335"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7423">the pid, or 0 if not known.</doc>
          <type name="gint" c:type="pid_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/window.c"
                 line="7415">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="246"/>
        <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="7231">Gets an unique id for a sandboxed app (currently flatpaks and snaps are
supported).</doc>
        <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="7238">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="7233">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="6948">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="329"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="6958">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="6950">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="4470">Gets the startup id of the given #MetaWindow</doc>
        <source-position filename="../src/meta/window.h" line="228"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="4476">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="4472">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="7736">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="359"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7749">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="7738">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="319"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7369">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="7367">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="7385">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="322"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7395">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="7387">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="6886">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="332"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="6899">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="6888">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="150"/>
        <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="7195">Return the current value of the name part of WM_CLASS X property.</doc>
        <source-position filename="../src/meta/window.h" line="180"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7201">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="7197">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="7213">Return the current value of the instance part of WM_CLASS X property.</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="7219">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="7215">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="6423">Get the work area for all monitors for @window.</doc>
        <source-position filename="../src/meta/window.h" line="408"/>
        <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="6425">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="6426">a location to store the work area</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </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="6380">Get the work area for the monitor @window is currently on.</doc>
        <source-position filename="../src/meta/window.h" line="399"/>
        <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="6382">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="6383">a location to store the work area</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </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="6396">Get the work area for @window, given the monitor index
@which_monitor.</doc>
        <source-position filename="../src/meta/window.h" line="403"/>
        <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="6398">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="6399">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="6400">a location to store the work area</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_workspace" c:identifier="meta_window_get_workspace">
        <doc xml:space="preserve"
             filename="../src/core/window.c"
             line="7153">Gets the #MetaWorkspace 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="153"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7161">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="7155">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xwindow"
              c:identifier="meta_window_get_xwindow"
              introspectable="0">
        <source-position filename="../src/meta/window.h" line="147"/>
        <return-value transfer-ownership="none">
          <type name="xlib.Window" c:type="Window"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/window.c"
                 line="7138">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="group_leader_changed"
              c:identifier="meta_window_group_leader_changed">
        <source-position filename="../src/meta/group.h" line="42"/>
        <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="has_attached_dialogs"
              c:identifier="meta_window_has_attached_dialogs">
        <doc xml:space="preserve"
             filename="../src/core/window.c"
             line="7686">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="347"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7694">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="7688">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="113"/>
        <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_above" c:identifier="meta_window_is_above">
        <source-position filename="../src/meta/window.h" line="433"/>
        <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="430"/>
        <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="6626">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="255"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="6635">%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="6628">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="6629">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="7655">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="344"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7663">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="7657">a #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_client_decorated"
              c:identifier="meta_window_is_client_decorated">
        <doc xml:space="preserve"
             filename="../src/core/window.c"
             line="6511">Check if if the window has decorations drawn by the client.
(window-&gt;decorated refers only to whether we should add decorations)</doc>
        <source-position filename="../src/meta/window.h" line="442"/>
        <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_fullscreen" c:identifier="meta_window_is_fullscreen">
        <source-position filename="../src/meta/window.h" line="275"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="2729">%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="2727">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="166"/>
        <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_monitor_sized"
              c:identifier="meta_window_is_monitor_sized">
        <source-position filename="../src/meta/window.h" line="281"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="2764">%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="2762">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">
        <source-position filename="../src/meta/window.h" line="159"/>
        <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="284"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="2797">%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="2795">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="122"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7098">%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="7096">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="341"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7528">%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="7526">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="278"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="2741">%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="2739">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_shaded" c:identifier="meta_window_is_shaded">
        <source-position filename="../src/meta/window.h" line="119"/>
        <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_skip_taskbar"
              c:identifier="meta_window_is_skip_taskbar">
        <doc xml:space="preserve"
             filename="../src/core/window.c"
             line="7108">Gets whether this window should be ignored by task lists.</doc>
        <source-position filename="../src/meta/window.h" line="125"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="7114">%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="7110">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="388"/>
        <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="162"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="1644">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="1641">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="1642">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="312"/>
        <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="315"/>
        <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="368"/>
        <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="362"/>
        <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="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>
          <parameter name="directions" transfer-ownership="none">
            <type name="MaximizeFlags" c:type="MetaMaximizeFlags"/>
          </parameter>
        </parameters>
      </method>
      <method name="minimize" c:identifier="meta_window_minimize">
        <source-position filename="../src/meta/window.h" line="303"/>
        <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="3988">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="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="3990">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="3991">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="3992">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="3993">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="4049">Resizes the window so that its outer bounds (including frame)
fit within the given rect</doc>
        <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">
            <doc xml:space="preserve"
                 filename="../src/core/window.c"
                 line="4051">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="4052">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="4053">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="4054">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="4055">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="4056">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="4079">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="219"/>
        <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="4081">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="4082">desired monitor index</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="raise" c:identifier="meta_window_raise">
        <source-position filename="../src/meta/window.h" line="309"/>
        <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_compositor_private"
              c:identifier="meta_window_set_compositor_private">
        <source-position filename="../src/meta/window.h" line="243"/>
        <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="222"/>
        <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="5265">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="291"/>
        <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="5267">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="5268">rectangle with the desired geometry or %NULL.</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="shade" c:identifier="meta_window_shade">
        <source-position filename="../src/meta/window.h" line="374"/>
        <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="shove_titlebar_onscreen"
              c:identifier="meta_window_shove_titlebar_onscreen">
        <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">
            <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="186"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/window.c"
               line="1683">%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="1681">A #MetaWindow</doc>
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="shutdown_group" c:identifier="meta_window_shutdown_group">
        <source-position filename="../src/meta/group.h" line="39"/>
        <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="stick" c:identifier="meta_window_stick">
        <source-position filename="../src/meta/window.h" line="382"/>
        <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="titlebar_is_onscreen"
              c:identifier="meta_window_titlebar_is_onscreen">
        <source-position filename="../src/meta/window.h" line="445"/>
        <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="unmake_above" c:identifier="meta_window_unmake_above">
        <source-position filename="../src/meta/window.h" line="371"/>
        <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="365"/>
        <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="299"/>
        <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="unminimize" c:identifier="meta_window_unminimize">
        <source-position filename="../src/meta/window.h" line="306"/>
        <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="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>
        </parameters>
      </method>
      <method name="unshade" c:identifier="meta_window_unshade">
        <source-position filename="../src/meta/window.h" line="378"/>
        <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="unstick" c:identifier="meta_window_unstick">
        <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">
            <type name="Window" c:type="MetaWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="above" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="appears-focused"
                transfer-ownership="none"
                getter="appears_focused">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="decorated" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="demands-attention" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="fullscreen" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="gtk-app-menu-object-path"
                transfer-ownership="none"
                getter="get_gtk_app_menu_object_path">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="gtk-application-id"
                transfer-ownership="none"
                getter="get_gtk_application_id">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="gtk-application-object-path"
                transfer-ownership="none"
                getter="get_gtk_application_object_path">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="gtk-menubar-object-path"
                transfer-ownership="none"
                getter="get_gtk_menubar_object_path">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="gtk-unique-bus-name"
                transfer-ownership="none"
                getter="get_gtk_unique_bus_name">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="gtk-window-object-path"
                transfer-ownership="none"
                getter="get_gtk_window_object_path">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="icon" transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="is-alive" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="maximized-horizontally" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="maximized-vertically" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="mini-icon" transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="minimized" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="mutter-hints"
                transfer-ownership="none"
                getter="get_mutter_hints">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="on-all-workspaces" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="resizeable" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="skip-taskbar" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="title" transfer-ownership="none" getter="get_title">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="urgent" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="user-time"
                transfer-ownership="none"
                getter="get_user_time">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="window-type"
                transfer-ownership="none"
                getter="get_window_type">
        <type name="WindowType"/>
      </property>
      <property name="wm-class"
                transfer-ownership="none"
                getter="get_wm_class">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="focus" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="monitor-changed" when="last">
        <doc xml:space="preserve"
             filename="../src/core/window.c"
             line="675">This is emitted when the window has changed monitor</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="old_monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/core/window.c"
                 line="678">the old monitor index or -1 if not known</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="position-changed" when="last">
        <doc xml:space="preserve"
             filename="../src/core/window.c"
             line="658">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="690">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="704">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">
      <source-position filename="../src/meta/meta-window-actor.h" line="33"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
      <method name="freeze" c:identifier="meta_window_actor_freeze">
        <doc xml:space="preserve"
             filename="../src/compositor/meta-window-actor.c"
             line="290">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="60"/>
        <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="292">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="1511">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="51"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-window-actor.c"
               line="1521">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="1513">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="1514">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="cairo.RectangleInt" c:type="cairo_rectangle_int_t*"/>
          </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="525">Gets the #MetaWindow object that the the #MetaWindowActor is displaying</doc>
        <source-position filename="../src/meta/meta-window-actor.h" line="39"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-window-actor.c"
               line="531">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="527">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="542">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="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-window-actor.c"
               line="549">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="544">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="593">Gets whether the X window that the actor was displaying has been destroyed</doc>
        <source-position filename="../src/meta/meta-window-actor.h" line="48"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-window-actor.c"
               line="599">%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="595">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="55"/>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-window-actor.c"
               line="1632">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="1625">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="1626">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="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="sync_visibility"
              c:identifier="meta_window_actor_sync_visibility">
        <source-position filename="../src/meta/meta-window-actor.h" line="45"/>
        <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="330">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="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-window-actor.c"
                 line="332">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="180">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="165">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="140">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"
            glib:is-gtype-struct-for="WindowActor">
      <source-position filename="../src/meta/meta-window-actor.h" line="33"/>
    </record>
    <record name="WindowClass"
            c:type="MetaWindowClass"
            disguised="1"
            glib:is-gtype-struct-for="Window">
      <source-position filename="../src/meta/window.h" line="104"/>
    </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="86">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="87">An X11 based window</doc>
      </member>
    </enumeration>
    <callback name="WindowForeachFunc" c:type="MetaWindowForeachFunc">
      <source-position filename="../src/meta/window.h" line="258"/>
      <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="11"/>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Clutter.Animatable"/>
      <implements name="Clutter.Container"/>
      <implements name="Clutter.Scriptable"/>
    </class>
    <record name="WindowGroupClass"
            c:type="MetaWindowGroupClass"
            glib:is-gtype-struct-for="WindowGroup">
      <source-position filename="../src/meta/meta-window-group.h" line="11"/>
      <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/common.h"
           line="409">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/common.h"
             line="411">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/common.h"
             line="412">the (fallback) app menu</doc>
      </member>
    </enumeration>
    <record name="WindowShape"
            c:type="MetaWindowShape"
            glib:type-name="MetaWindowShape"
            glib:get-type="meta_window_shape_get_type"
            c:symbol-prefix="window_shape">
      <doc xml:space="preserve"
           filename="../src/meta/meta-window-shape.h"
           line="34">#MetaWindowShape represents a 9-sliced region with borders on all sides that
are unscaled, and a constant central region that is scaled. For example,
the regions representing two windows that are rounded rectangles,
with the same corner radius but different sizes, have the
same MetaWindowShape.
#MetaWindowShape is designed to be used as part of a hash table key, so has
efficient hash and equal functions.</doc>
      <source-position filename="../src/meta/meta-window-shape.h" line="45"/>
      <constructor name="new" c:identifier="meta_window_shape_new">
        <source-position filename="../src/meta/meta-window-shape.h" line="48"/>
        <return-value transfer-ownership="full">
          <type name="WindowShape" c:type="MetaWindowShape*"/>
        </return-value>
        <parameters>
          <parameter name="region" transfer-ownership="none">
            <type name="cairo.Region" c:type="cairo_region_t*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="equal" c:identifier="meta_window_shape_equal">
        <source-position filename="../src/meta/meta-window-shape.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="shape_a" transfer-ownership="none">
            <type name="WindowShape" c:type="MetaWindowShape*"/>
          </instance-parameter>
          <parameter name="shape_b" transfer-ownership="none">
            <type name="WindowShape" c:type="MetaWindowShape*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_borders" c:identifier="meta_window_shape_get_borders">
        <source-position filename="../src/meta/meta-window-shape.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="shape" transfer-ownership="none">
            <type name="WindowShape" c:type="MetaWindowShape*"/>
          </instance-parameter>
          <parameter name="border_top" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="border_right" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="border_bottom" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="border_left" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hash" c:identifier="meta_window_shape_hash">
        <source-position filename="../src/meta/meta-window-shape.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="shape" transfer-ownership="none">
            <type name="WindowShape" c:type="MetaWindowShape*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="meta_window_shape_ref">
        <source-position filename="../src/meta/meta-window-shape.h" line="51"/>
        <return-value transfer-ownership="full">
          <type name="WindowShape" c:type="MetaWindowShape*"/>
        </return-value>
        <parameters>
          <instance-parameter name="shape" transfer-ownership="none">
            <type name="WindowShape" c:type="MetaWindowShape*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="to_region" c:identifier="meta_window_shape_to_region">
        <doc xml:space="preserve"
             filename="../src/compositor/meta-window-shape.c"
             line="217">Converts the shape to to a cairo_region_t using the given width
and height for the central scaled region.</doc>
        <source-position filename="../src/meta/meta-window-shape.h" line="71"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-window-shape.c"
               line="226">a newly created region</doc>
          <type name="cairo.Region" c:type="cairo_region_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="shape" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-window-shape.c"
                 line="219">a #MetaWindowShape</doc>
            <type name="WindowShape" c:type="MetaWindowShape*"/>
          </instance-parameter>
          <parameter name="center_width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-window-shape.c"
                 line="220">size of the central region horizontally</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="center_height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/compositor/meta-window-shape.c"
                 line="221">size of the central region vertically</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="meta_window_shape_unref">
        <source-position filename="../src/meta/meta-window-shape.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="shape" transfer-ownership="none">
            <type name="WindowShape" c:type="MetaWindowShape*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <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="32">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="33">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="34">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="35">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="36">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="37">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="38">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="39">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="40">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="41">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="42">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="43">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="44">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="45">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="46">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="47">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">
      <source-position filename="../src/meta/workspace.h" line="34"/>
      <method name="activate" c:identifier="meta_workspace_activate">
        <source-position filename="../src/meta/workspace.h" line="58"/>
        <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="539">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="61"/>
        <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="541">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="542">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="543">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="1508">Gets the #MetaDisplay that the workspace is part of.</doc>
        <source-position filename="../src/meta/workspace.h" line="43"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/workspace.c"
               line="1514">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="1510">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="1237">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="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/workspace.c"
               line="1246">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="1239">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="1240">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="1172">Stores the work area in @area.</doc>
        <source-position filename="../src/meta/workspace.h" line="54"/>
        <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="1174">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="1175">location to store the work area</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </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="1139">Stores the work area for @which_monitor on @workspace
in @area.</doc>
        <source-position filename="../src/meta/workspace.h" line="49"/>
        <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="1141">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="1142">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="1143">location to store the work area</doc>
            <type name="Rectangle" c:type="MetaRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="index" c:identifier="meta_workspace_index">
        <source-position filename="../src/meta/workspace.h" line="40"/>
        <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="738">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="46"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../src/core/workspace.c"
               line="745">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="740">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="1047">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="66"/>
        <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="1049">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="1050">list of #MetaStrut</doc>
            <type name="GLib.SList" c:type="GSList*">
              <type name="Strut"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <property name="active" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="n-windows" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="workspace-index" transfer-ownership="none">
        <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"
            glib:is-gtype-struct-for="Workspace">
      <source-position filename="../src/meta/workspace.h" line="34"/>
    </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="36"/>
      <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="375">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="57"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/meta-workspace-manager.c"
               line="386">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="377">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="378">%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="379">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="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/meta-workspace-manager.c"
               line="1030">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="1028">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="67"/>
        <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="45"/>
        <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="288">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="48"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="../src/core/meta-workspace-manager.c"
               line="297">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="290">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="291">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="42"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/core/meta-workspace-manager.c"
               line="1007">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="1005">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="589">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="73"/>
        <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="591">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="592">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="593">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="594">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="596">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="52"/>
        <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="493">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="62"/>
        <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="495">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="496">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="497">the new index of the passed workspace</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <property name="layout-columns" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="layout-rows" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="n-workspaces"
                transfer-ownership="none"
                getter="get_n_workspaces">
        <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="36"/>
      <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">
      <source-position filename="../src/meta/meta-x11-display.h" line="33"/>
      <method name="clear_stage_input_region"
              c:identifier="meta_x11_display_clear_stage_input_region">
        <source-position filename="../src/meta/meta-x11-display.h" line="71"/>
        <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>
        </parameters>
      </method>
      <method name="get_damage_event_base"
              c:identifier="meta_x11_display_get_damage_event_base">
        <source-position filename="../src/meta/meta-x11-display.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="x11_display" transfer-ownership="none">
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_screen_number"
              c:identifier="meta_x11_display_get_screen_number">
        <source-position filename="../src/meta/meta-x11-display.h" line="39"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="x11_display" transfer-ownership="none">
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_shape_event_base"
              c:identifier="meta_x11_display_get_shape_event_base">
        <source-position filename="../src/meta/meta-x11-display.h" line="54"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="x11_display" transfer-ownership="none">
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-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="42"/>
        <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="1463">a #MetaX11Display</doc>
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xinput_opcode"
              c:identifier="meta_x11_display_get_xinput_opcode"
              introspectable="0">
        <source-position filename="../src/meta/meta-x11-display.h" line="48"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="x11_display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/x11/meta-x11-display.c"
                 line="1485">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="45"/>
        <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="1474">A #MetaX11Display</doc>
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_shape" c:identifier="meta_x11_display_has_shape">
        <source-position filename="../src/meta/meta-x11-display.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="x11_display" transfer-ownership="none">
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="lookup_group"
              c:identifier="meta_x11_display_lookup_group"
              introspectable="0">
        <source-position filename="../src/meta/group.h" line="46"/>
        <return-value>
          <type name="Group" c:type="MetaGroup*"/>
        </return-value>
        <parameters>
          <instance-parameter name="x11_display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/x11/group.c"
                 line="233">a #MetaX11Display</doc>
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-parameter>
          <parameter name="group_leader" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/x11/group.c"
                 line="234">a X window</doc>
            <type name="xlib.Window" c:type="Window"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cm_selection"
              c:identifier="meta_x11_display_set_cm_selection">
        <source-position filename="../src/meta/meta-x11-display.h" line="60"/>
        <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>
        </parameters>
      </method>
      <method name="set_stage_input_region"
              c:identifier="meta_x11_display_set_stage_input_region">
        <source-position filename="../src/meta/meta-x11-display.h" line="67"/>
        <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="region" transfer-ownership="none">
            <type name="xfixes.XserverRegion" c:type="XserverRegion"/>
          </parameter>
        </parameters>
      </method>
      <method name="xwindow_is_a_no_focus_window"
              c:identifier="meta_x11_display_xwindow_is_a_no_focus_window">
        <source-position filename="../src/meta/meta-x11-display.h" line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/x11/meta-x11-display.c"
               line="1859">%TRUE iff window is one of mutter's internal "no focus" windows
which will have the focus when there is no actual client window focused.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="x11_display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/x11/meta-x11-display.c"
                 line="1856">A #MetaX11Display</doc>
            <type name="X11Display" c:type="MetaX11Display*"/>
          </instance-parameter>
          <parameter name="xwindow" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../src/x11/meta-x11-display.c"
                 line="1857">An X11 window</doc>
            <type name="xlib.Window" c:type="Window"/>
          </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="33"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <function-macro name="XFree" c:identifier="meta_XFree" introspectable="0">
      <source-position filename="../src/meta/display.h" line="78"/>
      <parameters>
        <parameter name="p">
        </parameter>
      </parameters>
    </function-macro>
    <function name="add_clutter_debug_flags"
              c:identifier="meta_add_clutter_debug_flags">
      <source-position filename="../src/meta/util.h" line="200"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="debug_flags" transfer-ownership="none">
          <type name="Clutter.DebugFlag" c:type="ClutterDebugFlag"/>
        </parameter>
        <parameter name="draw_flags" transfer-ownership="none">
          <type name="Clutter.DrawDebugFlag" c:type="ClutterDrawDebugFlag"/>
        </parameter>
        <parameter name="pick_flags" transfer-ownership="none">
          <type name="Clutter.PickDebugFlag" c:type="ClutterPickDebugFlag"/>
        </parameter>
      </parameters>
    </function>
    <function name="add_debug_paint_flag"
              c:identifier="meta_add_debug_paint_flag">
      <source-position filename="../src/meta/util.h" line="215"/>
      <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="152">Ensure log messages for the given topic @topic
will be printed.</doc>
      <source-position filename="../src/meta/util.h" line="126"/>
      <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="154">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="clutter_init" c:identifier="meta_clutter_init">
      <source-position filename="../src/meta/meta-backend.h" line="90"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <docsection name="compositor">
      <doc xml:space="preserve"
           filename="../src/compositor/compositor.c"
           line="3">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 meta_get_window_group_for_display()
- top window group, accessible with meta_get_top_window_group_for_display()

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>
    </docsection>
    <function name="create_context" c:identifier="meta_create_context">
      <doc xml:space="preserve"
           filename="../src/core/meta-context-main.c"
           line="662">Create a context.</doc>
      <source-position filename="../src/meta/meta-context.h" line="35"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../src/core/meta-context-main.c"
             line="668">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="664">Human readable name of display server or window manager</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="disable_unredirect_for_display"
              c:identifier="meta_disable_unredirect_for_display">
      <doc xml:space="preserve"
           filename="../src/compositor/compositor.c"
           line="1346">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-mutter.h" line="48"/>
      <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/compositor/compositor.c"
               line="1348">a #MetaDisplay</doc>
          <type name="Display" c:type="MetaDisplay*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="display">
      <doc xml:space="preserve"
           filename="../src/core/display.c"
           line="23">The display is represented as a #MetaDisplay struct.</doc>
    </docsection>
    <function name="enable_unredirect_for_display"
              c:identifier="meta_enable_unredirect_for_display">
      <doc xml:space="preserve"
           filename="../src/compositor/compositor.c"
           line="1369">Enables unredirection which reduces the overhead for apps like games.</doc>
      <source-position filename="../src/meta/compositor-mutter.h" line="51"/>
      <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/compositor/compositor.c"
               line="1371">a #MetaDisplay</doc>
          <type name="Display" c:type="MetaDisplay*"/>
        </parameter>
      </parameters>
    </function>
    <function name="exit" c:identifier="meta_exit">
      <source-position filename="../src/meta/main.h" line="50"/>
      <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="150"/>
      <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="47"/>
      <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="focus_stage_window" c:identifier="meta_focus_stage_window">
      <source-position filename="../src/meta/compositor-mutter.h" line="54"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="display" transfer-ownership="none">
          <type name="Display" c:type="MetaDisplay*"/>
        </parameter>
        <parameter name="timestamp" transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </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/ui/theme.c"
           line="1370">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="145"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/ui/theme.c"
             line="1377">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/ui/theme.c"
               line="1372">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="153"/>
      <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>
    <docsection name="gesture-tracker">
      <doc xml:space="preserve"
           filename="../src/core/meta-gesture-tracker.c"
           line="22">Forwards touch events to clutter actors, and accepts/rejects touch sequences
based on the outcome of those.</doc>
    </docsection>
    <function name="get_backend" c:identifier="meta_get_backend">
      <doc xml:space="preserve"
           filename="../src/backends/meta-backend.c"
           line="128">Accessor for the singleton MetaBackend.</doc>
      <source-position filename="../src/meta/meta-backend.h" line="47"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/backends/meta-backend.c"
             line="133">The only #MetaBackend there is.</doc>
        <type name="Backend" c:type="MetaBackend*"/>
      </return-value>
    </function>
    <function name="get_clutter_debug_flags"
              c:identifier="meta_get_clutter_debug_flags">
      <source-position filename="../src/meta/util.h" line="210"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="debug_flags"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../src/core/util.c"
               line="558">return location for debug flags</doc>
          <type name="Clutter.DebugFlag" c:type="ClutterDebugFlag*"/>
        </parameter>
        <parameter name="draw_flags"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../src/core/util.c"
               line="559">return location for draw debug flags</doc>
          <type name="Clutter.DrawDebugFlag" c:type="ClutterDrawDebugFlag*"/>
        </parameter>
        <parameter name="pick_flags"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../src/core/util.c"
               line="560">return location for pick debug flags</doc>
          <type name="Clutter.PickDebugFlag" c:type="ClutterPickDebugFlag*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_debug_paint_flags"
              c:identifier="meta_get_debug_paint_flags">
      <source-position filename="../src/meta/util.h" line="221"/>
      <return-value transfer-ownership="none">
        <type name="DebugPaintFlag" c:type="MetaDebugPaintFlag"/>
      </return-value>
    </function>
    <function name="get_feedback_group_for_display"
              c:identifier="meta_get_feedback_group_for_display">
      <source-position filename="../src/meta/compositor-mutter.h" line="45"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/compositor/compositor.c"
             line="273">The feedback group corresponding to @display</doc>
        <type name="Clutter.Actor" c:type="ClutterActor*"/>
      </return-value>
      <parameters>
        <parameter name="display" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/compositor.c"
               line="271">a #MetaDisplay</doc>
          <type name="Display" c:type="MetaDisplay*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_locale_direction"
              c:identifier="meta_get_locale_direction">
      <source-position filename="../src/meta/util.h" line="197"/>
      <return-value transfer-ownership="none">
        <type name="LocaleDirection" c:type="MetaLocaleDirection"/>
      </return-value>
    </function>
    <function name="get_stage_for_display"
              c:identifier="meta_get_stage_for_display">
      <source-position filename="../src/meta/compositor-mutter.h" line="33"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/compositor/compositor.c"
             line="210">The #ClutterStage for the display</doc>
        <type name="Clutter.Actor" c:type="ClutterActor*"/>
      </return-value>
      <parameters>
        <parameter name="display" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/compositor.c"
               line="208">a #MetaDisplay</doc>
          <type name="Display" c:type="MetaDisplay*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_top_window_group_for_display"
              c:identifier="meta_get_top_window_group_for_display">
      <source-position filename="../src/meta/compositor-mutter.h" line="42"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/compositor/compositor.c"
             line="252">The top window group corresponding to @display</doc>
        <type name="Clutter.Actor" c:type="ClutterActor*"/>
      </return-value>
      <parameters>
        <parameter name="display" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/compositor.c"
               line="250">a #MetaDisplay</doc>
          <type name="Display" c:type="MetaDisplay*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_window_actors" c:identifier="meta_get_window_actors">
      <source-position filename="../src/meta/compositor-mutter.h" line="36"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/compositor/compositor.c"
             line="294">The set of #MetaWindowActor on @display</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="Clutter.Actor"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="display" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/compositor.c"
               line="292">a #MetaDisplay</doc>
          <type name="Display" c:type="MetaDisplay*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_window_group_for_display"
              c:identifier="meta_get_window_group_for_display">
      <source-position filename="../src/meta/compositor-mutter.h" line="39"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/compositor/compositor.c"
             line="231">The window group corresponding to @display</doc>
        <type name="Clutter.Actor" c:type="ClutterActor*"/>
      </return-value>
      <parameters>
        <parameter name="display" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/compositor.c"
               line="229">a #MetaDisplay</doc>
          <type name="Display" c:type="MetaDisplay*"/>
        </parameter>
      </parameters>
    </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="147"/>
      <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="201">Returns %TRUE if this instance of Mutter comes from Mutter
restarting itself (for example to enable/disable stereo.)
See meta_restart(). If this is the case, any startup visuals
or animations should be suppressed.</doc>
      <source-position filename="../src/meta/main.h" line="35"/>
      <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/util.h" line="123"/>
      <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="3640">Allows users to register a custom handler for a
builtin key binding.</doc>
      <source-position filename="../src/meta/keybindings.h" line="42"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/core/keybindings.c"
             line="3650">%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="3642">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="3643">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="3644">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="3645">Will be called when this handler is overridden.</doc>
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="kms">
      <doc xml:space="preserve"
           filename="../src/backends/native/meta-kms.c"
           line="35">@short description: KMS abstraction
The KMS abstraction consists of various building blocks for helping out with
interacting with the various drm API's, enabling users to use a
transactional API, aiming to hide all interaction with the underlying APIs.

The subsystem defines two separate contexts, the "main" context, and the
"impl" context. The main context is the context of which mutter as a whole
runs in. It uses the main GLib main loop and main context and always runs in
the main thread.

The impl context is where all underlying API is being executed. While in the
current state, it always runs in the main thread, the aim is to be able to
execute the impl context in a dedicated thread.

The public facing MetaKms API is always assumed to be executed from the main
context.

The KMS abstraction consists of the following public components:

#MetaKms:

Main entry point; used by the native backend to create devices, post updates
etc.

#MetaKmsDevice:

A device (usually /dev/dri/cardN, where N being a number). Used to get KMS
objects, such as connectors, CRTCs, planes, as well as basic meta data such
as device path etc.

#MetaKmsCrtc:

Represents a CRTC. It manages a representation of the current CRTC state,
including current mode, coordinates, possible clones.

#MetaKmsConnector:

Represents a connector, e.g. a display port connection. It also manages a
representation of the current state, including meta data such as physical
dimension of the connected, available modes, EDID, tile info etc. It also
contains helper functions for configuration, as well as methods for adding
configuration to a transaction (See #MetaKmsUpdate).

#MetaKmsPlane:

Represents a hardware plane. A plane is used to define the content of what
should be presented on a CRTC. Planes can either be primary planes, used as
a backdrop for CRTCs, overlay planes, and cursor planes.

#MetaKmsMode:

Represents a mode a CRTC and connector can be configured with.
Represents both modes directly derived from the devices, as well as
fall back modes when the CRTC supports scaling.

#MetaKmsUpdate:

A KMS transaction object, meant to be processed potentially atomically when
posted. An update consists of plane assignments, mode sets and KMS object
property entries. The user adds updates to the object, and then posts it via
MetaKms. It will then be processed by the MetaKms backend (See
#MetaKmsImpl), potentially atomically. Each #MetaKmsUpdate deals with
updating a single device.


There are also these private objects, without public facing API:

#MetaKmsImpl:

The KMS impl context object, managing things in the impl context.

#MetaKmsImplDevice:

An object linked to a #MetaKmsDevice, but where it is executed in the impl
context. It takes care of the updating of the various KMS object (CRTC,
connector, ..) states.

This is an abstract type, with currently #MetaKmsImplDeviceSimple,
implementing mode setting and page flipping using legacy DRM API.

#MetaKmsPageFlip:

A object representing a page flip. It's created when a page flip is queued,
and contains information necessary to provide feedback to the one requesting
the page flip.</doc>
    </docsection>
    <function name="later_add" c:identifier="meta_later_add">
      <doc xml:space="preserve"
           filename="../src/compositor/meta-later.c"
           line="274">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="47"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../src/compositor/meta-later.c"
             line="288">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="guint"/>
      </return-value>
      <parameters>
        <parameter name="when" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-later.c"
               line="276">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="277">callback to run later</doc>
          <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-later.c"
               line="278">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="279">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>
    </function>
    <function name="later_remove" c:identifier="meta_later_remove">
      <doc xml:space="preserve"
           filename="../src/compositor/meta-later.c"
           line="328">Removes a callback added with meta_later_add()</doc>
      <source-position filename="../src/meta/meta-later.h" line="53"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="later_id" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../src/compositor/meta-later.c"
               line="330">the integer ID returned from meta_later_add()</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="meta-backend">
      <doc xml:space="preserve"
           filename="../src/backends/meta-backend.c"
           line="25">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 #MetaSettings
- Setting up Monitor configuration
- Input device configuration (using the #ClutterDeviceManager)
- Creating the #MetaRenderer
- Setting up the stage of the scene graph (using #MetaStage)
- Creating the object that deals with the cursor (using #MetaCursorTracker)
    and its possible pointer constraint (using #MetaPointerConstraint)
- Setting the cursor sprite (using #MetaCursorRenderer)
- Interacting with logind (using the appropriate D-Bus interface)
- Querying UPower (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 #ClutterBackend. It is
responsible for creating the correct one, based on the backend that is
used (#MetaBackendNative or #MetaBackendX11).</doc>
    </docsection>
    <docsection name="meta-backend-native">
      <doc xml:space="preserve"
           filename="../src/backends/native/meta-backend-native.c"
           line="25">MetaBackendNative is an implementation of #MetaBackend that uses "native"
technologies like DRM/KMS and libinput/evdev to perform the necessary
functions.</doc>
    </docsection>
    <docsection name="meta-backend-x11">
      <doc xml:space="preserve"
           filename="../src/backends/x11/meta-backend-x11.c"
           line="25">MetaBackendX11 is an implementation of #MetaBackend using X and X
extensions, like XInput and XKB.</doc>
    </docsection>
    <docsection name="meta-background-group">
      <doc xml:space="preserve"
           filename="../src/compositor/meta-background-group.c"
           line="3">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>
    </docsection>
    <docsection name="meta-clutter-backend-native">
      <doc xml:space="preserve"
           filename="../src/backends/native/meta-clutter-backend-native.c"
           line="25">MetaClutterBackendNative is the #ClutterBackend which is used by the native
(as opposed to the X) backend. It creates a stage with #MetaStageNative and
renders using the #CoglRenderer.

Note that MetaClutterBackendNative is something different than a
#MetaBackendNative. The former is a #ClutterBackend implementation, while
the latter is a #MetaBackend implementation.</doc>
    </docsection>
    <docsection name="meta-color-manager">
      <doc xml:space="preserve"
           filename="../src/backends/meta-color-manager.c"
           line="19">Each MetaBackend has a MetaColorManager which includes interfaces for querying
and altering the color-related properties for displays associated with that
backend.

These tasks include configuring the hardware's lookup tables (LUTs) used to
apply or remove transfer functions (traditionally called "gamma"), set up
color space conversions (CSCs), and for determining or setting the output
color space and transfer function.

Mutter itself does not store and manage device ICC profiles; this task is
handled by [colord](https://www.freedesktop.org/software/colord/). Colord
maintains a database of devices (displays, printers, etc) and color profiles,
including the default output profile for a device. Users configure colord
with their preferred color profile for a device via an external application
like GNOME Control Center or the colormgr CLI.

Colord defines [a specification for device and profile names](
https://github.com/hughsie/colord/blob/1.4.5/doc/device-and-profile-naming-spec.txt)
which is used to map Colord's devices to Mutter's #MetaMonitor.</doc>
    </docsection>
    <docsection name="meta-cullable">
      <doc xml:space="preserve"
           filename="../src/compositor/meta-cullable.c"
           line="47">When we are painting a stack of 5-10 large actors, the standard
bottom-to-top method of drawing every actor results in a tremendous
amount of overdraw. If these actors are painting textures like
windows, it can easily max out the available memory bandwidth on a
low-end graphics chipset. It's even worse if window textures are
being accessed over the AGP bus.

#MetaCullable is our solution. The basic technique applied here is to
do a pre-pass before painting where we walk each actor from top to bottom
and ask each actor to "cull itself out". We pass in a region it can copy
to clip its drawing to, and the actor can subtract its fully opaque pixels
so that actors underneath know not to draw there as well.</doc>
    </docsection>
    <docsection name="meta-logical-monitor">
      <doc xml:space="preserve"
           filename="../src/backends/meta-logical-monitor.c"
           line="22">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 #MetaMonitor.

#MetaLogicalMonitor has a single viewport, with its owns transformations
(such as scaling), that are applied to all the #MetaMonitor&lt;!-- --&gt;s that
are grouped by it.

#MetaLogicalMonitor provides an abstraction that makes it easy to handle
the specifics of setting up different #MetaMonitor&lt;!-- --&gt;s. It then can
be used more easily by #MetaRendererView.</doc>
    </docsection>
    <docsection name="meta-monitor-manager">
      <doc xml:space="preserve"
           filename="../src/backends/meta-monitor-manager.c"
           line="27">#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>
    </docsection>
    <docsection name="meta-monitor-manager-native">
      <doc xml:space="preserve"
           filename="../src/backends/native/meta-monitor-manager-native.c"
           line="25">#MetaMonitorManagerNative is a subclass of #MetaMonitorManager which
implements its functionality "natively": it uses the appropriate
functions of the Linux DRM kernel module and using a udev client.

See also #MetaMonitorManagerXrandr for an implementation using XRandR.</doc>
    </docsection>
    <docsection name="meta-monitor-manager-xrandr">
      <doc xml:space="preserve"
           filename="../src/backends/x11/meta-monitor-manager-xrandr.c"
           line="27">#MetaMonitorManagerXrandr is a subclass of #MetaMonitorManager which
implements its functionality using the RandR X protocol.

See also #MetaMonitorManagerKms for a native implementation using Linux DRM
and udev.</doc>
    </docsection>
    <docsection name="meta-pointer-confinement-wayland">
      <doc xml:space="preserve"
           filename="../src/wayland/meta-pointer-confinement-wayland.c"
           line="25">A MetaPointerConfinementConstraint implements the client pointer constraint
"pointer confinement": the cursor should not be able to "break out" of a
certain area defined by the client requesting it.</doc>
    </docsection>
    <docsection name="meta-pointer-constraint">
      <doc xml:space="preserve"
           filename="../src/backends/meta-pointer-constraint.c"
           line="25">A MetaPointerConstraint can be used to implement any kind of pointer
constraint as requested by a client, such as cursor lock.

Examples of pointer constraints are "pointer confinement" and "pointer
locking" (as defined in the wayland pointer constraint protocol extension),
which restrict movement in relation to a given client.</doc>
    </docsection>
    <docsection name="meta-pointer-lock-wayland">
      <doc xml:space="preserve"
           filename="../src/wayland/meta-pointer-lock-wayland.c"
           line="25">A MetaPointerLockConstraint implements the client pointer constraint "pointer
lock": the cursor should not make any movement.</doc>
    </docsection>
    <docsection name="meta-renderer">
      <doc xml:space="preserve"
           filename="../src/backends/meta-renderer.c"
           line="25">A MetaRenderer object has 2 functions:

1) Keeping a list of #MetaRendererView&lt;!-- --&gt;s, each responsible for
rendering a part of the stage, corresponding to each #MetaLogicalMonitor. It
keeps track of this list by querying the list of logical monitors in the
#MetaBackend's #MetaMonitorManager, and creating a renderer view for each
logical monitor it encounters.

2) Creating and setting up an appropriate #CoglRenderer. For example, a
#MetaRenderer might call cogl_renderer_set_custom_winsys() to tie the
backend-specific mechanisms into Cogl.</doc>
    </docsection>
    <docsection name="meta-renderer-view">
      <doc xml:space="preserve"
           filename="../src/backends/meta-renderer-view.c"
           line="18">A MetaRendererView object is responsible for rendering (a part of) the
global stage, or more precisely: the part that matches what can be seen on a
#MetaLogicalMonitor. By splitting up the rendering into different parts and
attaching it to a #MetaLogicalMonitor, we can do the rendering so that each
renderer view is responsible for applying the right #MetaMonitorTransform
and the right scaling.</doc>
    </docsection>
    <docsection name="meta-shaped-texture">
      <doc xml:space="preserve"
           filename="../src/compositor/meta-shaped-texture.c"
           line="24">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 #MetaMonitorTransform, y-invertedness, or a
crop-and-scale operation.</doc>
    </docsection>
    <docsection name="meta-surface-actor">
      <doc xml:space="preserve"
           filename="../src/compositor/meta-surface-actor.c"
           line="3">MetaSurfaceActor is an abstract class which represents a surface in the
Clutter scene graph. A subclass can implement the specifics of a surface
depending on the way it is handled by a display protocol.

An important feature of #MetaSurfaceActor is that it allows you to set an
"input region": all events that occur in the surface, but outside of the
input region are to be explicitly ignored. By default, this region is to
%NULL, which means events on the whole surface is allowed.</doc>
    </docsection>
    <docsection name="meta-wayland-buffer">
      <doc xml:space="preserve"
           filename="../src/wayland/meta-wayland-buffer.c"
           line="25">#MetaWaylandBuffer is a general wrapper around wl_buffer, the basic way of
passing rendered data from Wayland clients to the compositor. Note that a
buffer can be backed by several types of memory, as specified by
#MetaWaylandBufferType.</doc>
    </docsection>
    <docsection name="meta-wayland-client">
      <doc xml:space="preserve"
           filename="../src/wayland/meta-wayland-client.c"
           line="22">@title MetaWaylandClient</doc>
    </docsection>
    <docsection name="meta-wayland-dma-buf">
      <doc xml:space="preserve"
           filename="../src/wayland/meta-wayland-dma-buf.c"
           line="28">The MetaWaylandDmaBuf namespace contains several objects and functions to
handle DMA-BUF buffers that are passed through from clients in Wayland (e.g.
using the linux_dmabuf_unstable_v1 protocol).</doc>
    </docsection>
    <docsection name="meta-window">
      <doc xml:space="preserve"
           filename="../src/core/window.c"
           line="23">#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
#MetaWindowType 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
meta_window_get_type().

Common API for windows include:
- Minimizing: meta_window_minimize() / meta_window_unminimize()
- Maximizing: meta_window_maximize() / meta_window_unmaximize()
- Fullscreen: meta_window_make_fullscreen() / meta_window_unmake_fullscreen()
              / meta_window_is_fullscreen()

Each #MetaWindow is part of either one or all #MetaWorkspace&lt;!-- --&gt;s of the
desktop. You can activate a window on a certain workspace using
meta_window_activate_with_workspace(), and query on which workspace it is
located using meta_window_located_on_workspace(). The workspace it is part
of can be obtained using 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 #MetaWindowClientType enum.

To integrate within the Clutter scene graph, which deals with the actual
rendering, each #MetaWindow will be part of a #MetaWindowActor.</doc>
    </docsection>
    <docsection name="meta-window-actor">
      <doc xml:space="preserve"
           filename="../src/compositor/meta-window-actor.c"
           line="3">#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>
    </docsection>
    <function name="pop_no_msg_prefix" c:identifier="meta_pop_no_msg_prefix">
      <source-position filename="../src/meta/util.h" line="135"/>
      <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="123"/>
      <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="115"/>
      <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="874">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="875">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="475"/>
      <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="209"/>
      <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="194"/>
      <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="197"/>
      <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="200"/>
      <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="141"/>
      <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="178"/>
      <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="160"/>
      <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="163"/>
      <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="190"/>
      <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="181"/>
      <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="481"/>
      <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="219"/>
      <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="216"/>
      <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="213"/>
      <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="157"/>
      <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="234"/>
      <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="231"/>
      <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="154"/>
      <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="175"/>
      <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="166"/>
      <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="135"/>
      <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="138"/>
      <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="222"/>
      <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="169"/>
      <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="172"/>
      <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="469"/>
      <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_mouse_button_menu"
              c:identifier="meta_prefs_get_mouse_button_menu">
      <source-position filename="../src/meta/prefs.h" line="132"/>
      <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="126"/>
      <return-value transfer-ownership="none">
        <type name="VirtualModifier" c:type="MetaVirtualModifier"/>
      </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="129"/>
      <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="151"/>
      <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="144"/>
      <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="184"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="prefs_get_titlebar_font"
              c:identifier="meta_prefs_get_titlebar_font">
      <source-position filename="../src/meta/prefs.h" line="148"/>
      <return-value transfer-ownership="none">
        <type name="Pango.FontDescription"
              c:type="const PangoFontDescription*"/>
      </return-value>
    </function>
    <function name="prefs_get_visual_bell"
              c:identifier="meta_prefs_get_visual_bell">
      <source-position filename="../src/meta/prefs.h" line="472"/>
      <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="478"/>
      <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="206"/>
      <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="228"/>
      <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="119"/>
      <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="893">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="894">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="225"/>
      <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="203"/>
      <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="187"/>
      <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="132"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="rect" c:identifier="meta_rect">
      <source-position filename="../src/meta/boxes.h" line="115"/>
      <return-value transfer-ownership="full">
        <type name="Rectangle" c:type="MetaRectangle"/>
      </return-value>
      <parameters>
        <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>
        <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>
    </function>
    <function name="remove_clutter_debug_flags"
              c:identifier="meta_remove_clutter_debug_flags">
      <source-position filename="../src/meta/util.h" line="205"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="debug_flags" transfer-ownership="none">
          <type name="Clutter.DebugFlag" c:type="ClutterDebugFlag"/>
        </parameter>
        <parameter name="draw_flags" transfer-ownership="none">
          <type name="Clutter.DrawDebugFlag" c:type="ClutterDrawDebugFlag"/>
        </parameter>
        <parameter name="pick_flags" transfer-ownership="none">
          <type name="Clutter.PickDebugFlag" c:type="ClutterPickDebugFlag"/>
        </parameter>
      </parameters>
    </function>
    <function name="remove_debug_paint_flag"
              c:identifier="meta_remove_debug_paint_flag">
      <source-position filename="../src/meta/util.h" line="218"/>
      <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="175">Stop printing log messages for the given topic @topic.  Note
that this method does not stack with meta_add_verbose_topic();
i.e. if two calls to meta_add_verbose_topic() for the same
topic are made, one call to meta_remove_verbose_topic() will
remove it.</doc>
      <source-position filename="../src/meta/util.h" line="129"/>
      <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="177">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="116">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 -  MetaDisplay::show-restart-message, to display the
message passed here on the Clutter stage, and ::restart to actually
reexec the compositor.</doc>
      <source-position filename="../src/meta/main.h" line="31"/>
      <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="118">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="119">a #MetaContext</doc>
          <type name="Context" c:type="MetaContext*"/>
        </parameter>
      </parameters>
    </function>
    <function name="theme_get_default"
              c:identifier="meta_theme_get_default"
              moved-to="Theme.get_default"
              introspectable="0">
      <source-position filename="../src/meta/theme.h" line="34"/>
      <return-value>
        <type name="Theme" c:type="MetaTheme*"/>
      </return-value>
    </function>
    <function name="theme_new"
              c:identifier="meta_theme_new"
              moved-to="Theme.new"
              introspectable="0">
      <source-position filename="../src/meta/theme.h" line="37"/>
      <return-value>
        <type name="Theme" c:type="MetaTheme*"/>
      </return-value>
    </function>
    <function-macro name="topic" c:identifier="meta_topic" introspectable="0">
      <source-position filename="../src/meta/util.h" line="160"/>
      <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/util.h" line="158"/>
      <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="138"/>
      <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="142"/>
      <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>
    <function-macro name="verbose"
                    c:identifier="meta_verbose"
                    introspectable="0">
      <source-position filename="../src/meta/util.h" line="174"/>
      <parameters>
        <parameter name="...">
        </parameter>
      </parameters>
    </function-macro>
    <function name="warning" c:identifier="meta_warning" 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>
    <docsection name="workspace">
      <doc xml:space="preserve"
           filename="../src/core/workspace.c"
           line="22">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>
    </docsection>
    <docsection name="x11-display">
      <doc xml:space="preserve"
           filename="../src/x11/meta-x11-display.c"
           line="23">The X11 display is represented as a #MetaX11Display struct.</doc>
    </docsection>
    <function name="x11_error_trap_pop" c:identifier="meta_x11_error_trap_pop">
      <source-position filename="../src/meta/meta-x11-errors.h" line="34"/>
      <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>
      </parameters>
    </function>
    <function name="x11_error_trap_pop_with_return"
              c:identifier="meta_x11_error_trap_pop_with_return">
      <source-position filename="../src/meta/meta-x11-errors.h" line="38"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="x11_display" transfer-ownership="none">
          <type name="X11Display" c:type="MetaX11Display*"/>
        </parameter>
      </parameters>
    </function>
    <function name="x11_error_trap_push"
              c:identifier="meta_x11_error_trap_push">
      <source-position filename="../src/meta/meta-x11-errors.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>
      </parameters>
    </function>
    <function name="x11_init_gdk_display"
              c:identifier="meta_x11_init_gdk_display"
              throws="1">
      <source-position filename="../src/meta/meta-x11-display.h" line="36"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
  </namespace>
</repository>
