<?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="GObject" version="2.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gtk" version="2.0"/>
  <package name="libwnck-1.0"/>
  <namespace name="Wnck"
             version="1.0"
             shared-library="libwnck-1.so.24.0"
             c:identifier-prefixes="Wnck"
             c:symbol-prefixes="wnck">
    <class name="ActionMenu"
           c:symbol-prefix="action_menu"
           c:type="WnckActionMenu"
           parent="Gtk.Menu"
           glib:type-name="WnckActionMenu"
           glib:get-type="wnck_action_menu_get_type"
           glib:type-struct="ActionMenuClass">
      <doc xml:space="preserve">The #WnckActionMenu struct contains only private fields and should not be
directly accessed.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new"
                   c:identifier="wnck_action_menu_new"
                   version="2.22">
        <doc xml:space="preserve">Creates a new #WnckActionMenu. The #WnckActionMenu will be filled with menu
items for window operations on @window.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a newly created #WnckActionMenu.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">the #WnckWindow for which a menu will be created.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="window"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <field name="parent_instance">
        <type name="Gtk.Menu" c:type="GtkMenu"/>
      </field>
      <field name="priv">
        <type name="ActionMenuPrivate" c:type="WnckActionMenuPrivate*"/>
      </field>
    </class>
    <record name="ActionMenuClass"
            c:type="WnckActionMenuClass"
            glib:is-gtype-struct-for="ActionMenu">
      <field name="parent_class">
        <type name="Gtk.MenuClass" c:type="GtkMenuClass"/>
      </field>
      <field name="pad1">
        <callback name="pad1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad2">
        <callback name="pad2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad3">
        <callback name="pad3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad4">
        <callback name="pad4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="ActionMenuPrivate"
            c:type="WnckActionMenuPrivate"
            disguised="1">
    </record>
    <class name="Application"
           c:symbol-prefix="application"
           c:type="WnckApplication"
           parent="GObject.Object"
           glib:type-name="WnckApplication"
           glib:get-type="wnck_application_get_type"
           glib:type-struct="ApplicationClass">
      <doc xml:space="preserve">The #WnckApplication struct contains only private fields and should not be
directly accessed.</doc>
      <function name="get" c:identifier="wnck_application_get">
        <doc xml:space="preserve">Gets the #WnckApplication corresponding to the group leader with @xwindow
as X window ID.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #WnckApplication corresponding to @xwindow, or %NULL if there no such #WnckApplication could be found. The returned #WnckApplication is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Application" c:type="WnckApplication*"/>
        </return-value>
        <parameters>
          <parameter name="xwindow" transfer-ownership="none">
            <doc xml:space="preserve">the X window ID of a group leader.</doc>
            <type name="gulong" c:type="gulong"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="icon_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="Application" c:type="WnckApplication*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="name_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <type name="Application" c:type="WnckApplication*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_icon"
              c:identifier="wnck_application_get_icon"
              introspectable="0">
        <doc xml:space="preserve">Gets the icon to be used for @app. If no icon is set for @app, a
suboptimal heuristic is used to find an appropriate icon. If no icon was
found, a fallback icon is used.</doc>
        <return-value>
          <doc xml:space="preserve">the icon for @app. The caller should reference the returned &lt;classname&gt;GdkPixbuf&lt;/classname&gt; if it needs to keep the icon around.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckApplication.</doc>
            <type name="Application" c:type="WnckApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_is_fallback"
              c:identifier="wnck_application_get_icon_is_fallback">
        <doc xml:space="preserve">Gets whether a default fallback icon is used for @app (because none
was set on @app).</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the icon for @app is a fallback, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckApplication</doc>
            <type name="Application" c:type="WnckApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="wnck_application_get_icon_name">
        <doc xml:space="preserve">Gets the icon name of @app (to be used when @app is minimized). Since
there is no way to properly find this name, various suboptimal heuristics
are used to find it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the icon name of @app, or a fallback icon name if no icon name is available.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckApplication</doc>
            <type name="Application" c:type="WnckApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mini_icon"
              c:identifier="wnck_application_get_mini_icon"
              introspectable="0">
        <doc xml:space="preserve">Gets the mini-icon to be used for @app. If no mini-icon is set for @app,
a suboptimal heuristic is used to find an appropriate icon. If no mini-icon
was found, a fallback mini-icon is used.</doc>
        <return-value>
          <doc xml:space="preserve">the mini-icon for @app. The caller should reference the returned &lt;classname&gt;GdkPixbuf&lt;/classname&gt; if it needs to keep the mini-icon around.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckApplication.</doc>
            <type name="Application" c:type="WnckApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_n_windows"
              c:identifier="wnck_application_get_n_windows">
        <doc xml:space="preserve">Gets the number of #WnckWindow belonging to @app.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of #WnckWindow belonging to @app.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckApplication.</doc>
            <type name="Application" c:type="WnckApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="wnck_application_get_name">
        <doc xml:space="preserve">Gets the name of @app. Since there is no way to properly find this name,
various suboptimal heuristics are used to find it. GTK+ should probably have
a function to allow applications to set the _NET_WM_NAME property on the
group leader as the application name, and the &lt;ulink
url="http://standards.freedesktop.org/wm-spec/wm-spec-latest.html"&gt;EWMH&lt;/ulink&gt;
should say that this is where the application name goes.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of @app, or a fallback name if no name is available.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckApplication.</doc>
            <type name="Application" c:type="WnckApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pid" c:identifier="wnck_application_get_pid">
        <doc xml:space="preserve">Gets the process ID of @app.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the process ID of @app, or 0 if none is available.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckApplication.</doc>
            <type name="Application" c:type="WnckApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_startup_id"
              c:identifier="wnck_application_get_startup_id"
              version="2.2">
        <doc xml:space="preserve">Gets the startup sequence ID used for startup notification of @app.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the startup sequence ID used for startup notification of @app, or %NULL if none is available.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckApplication.</doc>
            <type name="Application" c:type="WnckApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_windows" c:identifier="wnck_application_get_windows">
        <doc xml:space="preserve">Gets the list of #WnckWindow belonging to @app.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the list of #WnckWindow belonging to @app, or %NULL if the application contains no window. The list should not be modified nor freed, as it is owned by @app.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Window"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckApplication.</doc>
            <type name="Application" c:type="WnckApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xid" c:identifier="wnck_application_get_xid">
        <doc xml:space="preserve">Gets the X window ID of the group leader window for @app.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the X window ID of the group leader window for @app.</doc>
          <type name="gulong" c:type="gulong"/>
        </return-value>
        <parameters>
          <instance-parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckApplication.</doc>
            <type name="Application" c:type="WnckApplication*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ApplicationPrivate" c:type="WnckApplicationPrivate*"/>
      </field>
      <glib:signal name="icon-changed" when="last">
        <doc xml:space="preserve">Emitted when the icon of @app changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="name-changed" when="last">
        <doc xml:space="preserve">Emitted when the name of @app changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ApplicationClass"
            c:type="WnckApplicationClass"
            glib:is-gtype-struct-for="Application">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="name_changed">
        <callback name="name_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="app" transfer-ownership="none">
              <type name="Application" c:type="WnckApplication*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="icon_changed">
        <callback name="icon_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="app" transfer-ownership="none">
              <type name="Application" c:type="WnckApplication*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pad1">
        <callback name="pad1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad2">
        <callback name="pad2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad3">
        <callback name="pad3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad4">
        <callback name="pad4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="ApplicationPrivate"
            c:type="WnckApplicationPrivate"
            disguised="1">
    </record>
    <class name="ClassGroup"
           c:symbol-prefix="class_group"
           c:type="WnckClassGroup"
           parent="GObject.Object"
           glib:type-name="WnckClassGroup"
           glib:get-type="wnck_class_group_get_type"
           glib:type-struct="ClassGroupClass">
      <doc xml:space="preserve">The #WnckClassGroup struct contains only private fields and should not be
directly accessed.</doc>
      <function name="get" c:identifier="wnck_class_group_get" version="2.2">
        <doc xml:space="preserve">Gets the #WnckClassGroup corresponding to @res_class.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #WnckClassGroup corresponding to @res_class, or %NULL if there is no #WnckClassGroup with the specified @res_class. The returned #WnckClassGroup is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="ClassGroup" c:type="WnckClassGroup*"/>
        </return-value>
        <parameters>
          <parameter name="res_class" transfer-ownership="none">
            <doc xml:space="preserve">name of the sought resource class.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_icon"
              c:identifier="wnck_class_group_get_icon"
              version="2.2"
              introspectable="0">
        <doc xml:space="preserve">Gets the icon to be used for @class_group. Since there is no way to
properly find the icon, a suboptimal heuristic is used to find it. The icon
is the first icon found by looking at all the #WnckApplication for each
#WnckWindow in @class_group, then at all the #WnckWindow in @class_group. If
no icon was found, a fallback icon is used.</doc>
        <return-value>
          <doc xml:space="preserve">the icon for @class_group. The caller should reference the returned &lt;classname&gt;GdkPixbuf&lt;/classname&gt; if it needs to keep the icon around.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="class_group" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckClassGroup.</doc>
            <type name="ClassGroup" c:type="WnckClassGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mini_icon"
              c:identifier="wnck_class_group_get_mini_icon"
              version="2.2"
              introspectable="0">
        <doc xml:space="preserve">Gets the mini-icon to be used for @class_group. Since there is no way to
properly find the mini-icon, the same suboptimal heuristic as the one for
wnck_class_group_get_icon() is used to find it.</doc>
        <return-value>
          <doc xml:space="preserve">the mini-icon for @class_group. The caller should reference the returned &lt;classname&gt;GdkPixbuf&lt;/classname&gt; if it needs to keep the mini-icon around.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="class_group" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckClassGroup.</doc>
            <type name="ClassGroup" c:type="WnckClassGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="wnck_class_group_get_name"
              version="2.2">
        <doc xml:space="preserve">Gets an human-readable name for @class_group. Since there is no way to
properly find this name, a suboptimal heuristic is used to find it. The name
is the name of all #WnckApplication for each #WnckWindow in @class_group if
they all have the same name. If all #WnckApplication don't have the same
name, the name is the name of all #WnckWindow in @class_group if they all
have the same name. If all #WnckWindow don't have the same name, the
resource class name is used.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">an human-readable name for @class_group.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="class_group" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckClassGroup.</doc>
            <type name="ClassGroup" c:type="WnckClassGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_res_class"
              c:identifier="wnck_class_group_get_res_class"
              version="2.2">
        <doc xml:space="preserve">Gets the resource class name for @class_group.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the resource class name of @class_group, or an empty string if the group has no resource class name.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="class_group" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckClassGroup.</doc>
            <type name="ClassGroup" c:type="WnckClassGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_windows"
              c:identifier="wnck_class_group_get_windows"
              version="2.2">
        <doc xml:space="preserve">Gets the list of #WnckWindow that are grouped in @class_group.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the list of #WnckWindow grouped in @class_group, or %NULL if the group contains no window. The list should not be modified nor freed, as it is owned by @class_group.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Window"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="class_group" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckClassGroup.</doc>
            <type name="ClassGroup" c:type="WnckClassGroup*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ClassGroupPrivate" c:type="WnckClassGroupPrivate*"/>
      </field>
      <glib:signal name="icon-changed" when="last">
        <doc xml:space="preserve">Emitted when the icon of @class_group changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="name-changed" when="last">
        <doc xml:space="preserve">Emitted when the name of @class_group changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="ClassGroupClass"
            c:type="WnckClassGroupClass"
            glib:is-gtype-struct-for="ClassGroup">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="name_changed">
        <callback name="name_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="app" transfer-ownership="none">
              <type name="Application" c:type="WnckApplication*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="icon_changed">
        <callback name="icon_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="app" transfer-ownership="none">
              <type name="Application" c:type="WnckApplication*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pad1">
        <callback name="pad1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad2">
        <callback name="pad2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad3">
        <callback name="pad3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad4">
        <callback name="pad4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="ClassGroupPrivate"
            c:type="WnckClassGroupPrivate"
            disguised="1">
    </record>
    <enumeration name="ClientType"
                 version="2.14"
                 glib:type-name="WnckClientType"
                 glib:get-type="wnck_client_type_get_type"
                 c:type="WnckClientType">
      <doc xml:space="preserve">Type describing the role of the libwnck user.</doc>
      <member name="application"
              value="1"
              c:identifier="WNCK_CLIENT_TYPE_APPLICATION"
              glib:nick="application">
        <doc xml:space="preserve">the libwnck user is a normal application.</doc>
      </member>
      <member name="pager"
              value="2"
              c:identifier="WNCK_CLIENT_TYPE_PAGER"
              glib:nick="pager">
        <doc xml:space="preserve">the libwnck user is an utility application dealing with window management, like pagers and taskbars.</doc>
      </member>
    </enumeration>
    <callback name="LoadIconFunction"
              c:type="WnckLoadIconFunction"
              version="2.2"
              introspectable="0">
      <doc xml:space="preserve">Specifies the type of function passed to wnck_tasklist_set_icon_loader().</doc>
      <return-value>
        <doc xml:space="preserve">it should return a &lt;classname&gt;GdkPixbuf&lt;/classname&gt; of @icon_name at size @size, or %NULL if no icon for @icon_name at size @size could be loaded.</doc>
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </return-value>
      <parameters>
        <parameter name="icon_name" transfer-ownership="none">
          <doc xml:space="preserve">an icon name as in the Icon field in a .desktop file for the icon to load.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve">the desired icon size.</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="flags" transfer-ownership="none">
          <doc xml:space="preserve">not defined to do anything yet.</doc>
          <type name="guint" c:type="unsigned int"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <doc xml:space="preserve">data passed to the function, set when the #WnckLoadIconFunction has been set for the #WnckTasklist.</doc>
          <type name="gpointer" c:type="void*"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="MotionDirection"
                 version="2.14"
                 glib:type-name="WnckMotionDirection"
                 glib:get-type="wnck_motion_direction_get_type"
                 c:type="WnckMotionDirection">
      <doc xml:space="preserve">Type defining a direction in which to search a neighbor #WnckWorkspace.</doc>
      <member name="up"
              value="-1"
              c:identifier="WNCK_MOTION_UP"
              glib:nick="up">
        <doc xml:space="preserve">search a neighbor #WnckWorkspace above another #WnckWorkspace.</doc>
      </member>
      <member name="down"
              value="-2"
              c:identifier="WNCK_MOTION_DOWN"
              glib:nick="down">
        <doc xml:space="preserve">search a neighbor #WnckWorkspace below another #WnckWorkspace.</doc>
      </member>
      <member name="left"
              value="-3"
              c:identifier="WNCK_MOTION_LEFT"
              glib:nick="left">
        <doc xml:space="preserve">search a neighbor #WnckWorkspace at the left of another #WnckWorkspace.</doc>
      </member>
      <member name="right"
              value="-4"
              c:identifier="WNCK_MOTION_RIGHT"
              glib:nick="right">
        <doc xml:space="preserve">search a neighbor #WnckWorkspace at the right of another #WnckWorkspace.</doc>
      </member>
    </enumeration>
    <class name="Pager"
           c:symbol-prefix="pager"
           c:type="WnckPager"
           parent="Gtk.Widget"
           glib:type-name="WnckPager"
           glib:get-type="wnck_pager_get_type"
           glib:type-struct="PagerClass">
      <doc xml:space="preserve">The #WnckPager struct contains only private fields and should not be
directly accessed.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="wnck_pager_new">
        <doc xml:space="preserve">Creates a new #WnckPager. The #WnckPager will show the #WnckWorkspace of the
#WnckScreen it is on.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a newly created #WnckPager.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">deprecated argument, can be %NULL.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="set_display_mode"
              c:identifier="wnck_pager_set_display_mode">
        <doc xml:space="preserve">Sets the display mode for @pager to @mode.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pager" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckPager.</doc>
            <type name="Pager" c:type="WnckPager*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">a display mode.</doc>
            <type name="PagerDisplayMode" c:type="WnckPagerDisplayMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_n_rows" c:identifier="wnck_pager_set_n_rows">
        <doc xml:space="preserve">Tries to change the number of rows in the layout of #WnckWorkspace on the
#WnckScreen @pager is watching. Since no more than one application should
set this property of a #WnckScreen at a time, setting the layout is not
guaranteed to work. 

If @pager has not been added to a widget hierarchy, the call will fail
because @pager can't know the screen on which to modify the layout.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the layout of #WnckWorkspace has been successfully changed or did not need to be changed, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pager" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckPager.</doc>
            <type name="Pager" c:type="WnckPager*"/>
          </instance-parameter>
          <parameter name="n_rows" transfer-ownership="none">
            <doc xml:space="preserve">the number of rows to use for the layout of #WnckWorkspace on the #WnckScreen @pager is watching.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_orientation" c:identifier="wnck_pager_set_orientation">
        <doc xml:space="preserve">Tries to change the orientation of the layout of #WnckWorkspace on the
#WnckScreen @pager is watching. Since no more than one application should
set this property of a #WnckScreen at a time, setting the layout is not
guaranteed to work. 

If @orientation is %GTK_ORIENTATION_HORIZONTAL, the #WnckWorkspace will be
laid out in rows, with the first #WnckWorkspace in the top left corner.

If @orientation is %GTK_ORIENTATION_VERTICAL, the #WnckWorkspace will be
laid out in columns, with the first #WnckWorkspace in the top left corner.

For example, if the layout contains one row, but the orientation of the
layout is vertical, the #WnckPager will display a column of #WnckWorkspace.

If @pager has not been added to a widget hierarchy, the call will fail
because @pager can't know the screen on which to modify the orientation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the layout of #WnckWorkspace has been successfully changed or did not need to be changed, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="pager" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckPager.</doc>
            <type name="Pager" c:type="WnckPager*"/>
          </instance-parameter>
          <parameter name="orientation" transfer-ownership="none">
            <doc xml:space="preserve">orientation to use for the layout of #WnckWorkspace on the #WnckScreen @pager is watching.</doc>
            <type name="Gtk.Orientation" c:type="GtkOrientation"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_screen"
              c:identifier="wnck_pager_set_screen"
              version="2.2"
              deprecated="2.20:">
        <doc xml:space="preserve">Does nothing.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pager" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckPager.</doc>
            <type name="Pager" c:type="WnckPager*"/>
          </instance-parameter>
          <parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_shadow_type"
              c:identifier="wnck_pager_set_shadow_type"
              version="2.2">
        <doc xml:space="preserve">Sets the shadow type for @pager to @shadow_type. The main use of this
function is proper integration of #WnckPager in panels with non-system
backgrounds.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pager" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckPager.</doc>
            <type name="Pager" c:type="WnckPager*"/>
          </instance-parameter>
          <parameter name="shadow_type" transfer-ownership="none">
            <doc xml:space="preserve">a shadow type.</doc>
            <type name="Gtk.ShadowType" c:type="GtkShadowType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_all" c:identifier="wnck_pager_set_show_all">
        <doc xml:space="preserve">Sets @pager to display all #WnckWorkspace or not, according to
@show_all_workspaces.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="pager" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckPager.</doc>
            <type name="Pager" c:type="WnckPager*"/>
          </instance-parameter>
          <parameter name="show_all_workspaces" transfer-ownership="none">
            <doc xml:space="preserve">whether to display all #WnckWorkspace in @pager.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Gtk.Container" c:type="GtkContainer"/>
      </field>
      <field name="priv">
        <type name="PagerPrivate" c:type="WnckPagerPrivate*"/>
      </field>
    </class>
    <record name="PagerClass"
            c:type="WnckPagerClass"
            glib:is-gtype-struct-for="Pager">
      <field name="parent_class">
        <type name="Gtk.ContainerClass" c:type="GtkContainerClass"/>
      </field>
      <field name="pad1">
        <callback name="pad1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad2">
        <callback name="pad2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad3">
        <callback name="pad3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad4">
        <callback name="pad4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="PagerDisplayMode"
                 glib:type-name="WnckPagerDisplayMode"
                 glib:get-type="wnck_pager_display_mode_get_type"
                 c:type="WnckPagerDisplayMode">
      <doc xml:space="preserve">Mode defining what a #WnckPager will display.</doc>
      <member name="name"
              value="0"
              c:identifier="WNCK_PAGER_DISPLAY_NAME"
              glib:nick="name">
        <doc xml:space="preserve">the #WnckPager will only display the names of the workspaces.</doc>
      </member>
      <member name="content"
              value="1"
              c:identifier="WNCK_PAGER_DISPLAY_CONTENT"
              glib:nick="content">
        <doc xml:space="preserve">the #WnckPager will display a representation for each window in the workspaces.</doc>
      </member>
    </enumeration>
    <record name="PagerPrivate" c:type="WnckPagerPrivate" disguised="1">
    </record>
    <record name="ResourceUsage" c:type="WnckResourceUsage" version="2.6">
      <doc xml:space="preserve">The #WnckResourceUsage struct contains information about the total resource
usage of an X client, and the number of resources allocated for each
resource type.</doc>
      <field name="total_bytes_estimate" writable="1">
        <type name="gulong" c:type="gulong"/>
      </field>
      <field name="pixmap_bytes" writable="1">
        <type name="gulong" c:type="gulong"/>
      </field>
      <field name="n_pixmaps" writable="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="n_windows" writable="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="n_gcs" writable="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="n_pictures" writable="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="n_glyphsets" writable="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="n_fonts" writable="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="n_colormap_entries" writable="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="n_passive_grabs" writable="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="n_cursors" writable="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="n_other" writable="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="pad1" readable="0" private="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="pad2" readable="0" private="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="pad3" readable="0" private="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="pad4" readable="0" private="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="pad5" readable="0" private="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="pad6" readable="0" private="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="pad7" readable="0" private="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="pad8" readable="0" private="1">
        <type name="guint" c:type="unsigned"/>
      </field>
      <field name="pad9" readable="0" private="1">
        <type name="guint" c:type="unsigned"/>
      </field>
    </record>
    <class name="Screen"
           c:symbol-prefix="screen"
           c:type="WnckScreen"
           parent="GObject.Object"
           glib:type-name="WnckScreen"
           glib:get-type="wnck_screen_get_type"
           glib:type-struct="ScreenClass">
      <doc xml:space="preserve">The #WnckScreen struct contains only private fields and should not be
directly accessed.</doc>
      <function name="free_workspace_layout"
                c:identifier="wnck_screen_free_workspace_layout"
                version="2.12"
                deprecated="2.20:">
        <doc xml:space="preserve">Frees the content of @layout. This does not free @layout itself, so you
might want to free @layout yourself after calling this.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspaceLayout.</doc>
            <type name="WorkspaceLayout" c:type="WnckWorkspaceLayout*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get" c:identifier="wnck_screen_get">
        <doc xml:space="preserve">Gets the #WnckScreen for a given screen on the default display.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #WnckScreen for screen @index, or %NULL if no such screen exists. The returned #WnckScreen is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Screen" c:type="WnckScreen*"/>
        </return-value>
        <parameters>
          <parameter name="index" transfer-ownership="none">
            <doc xml:space="preserve">screen number, starting from 0.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_default" c:identifier="wnck_screen_get_default">
        <doc xml:space="preserve">Gets the default #WnckScreen on the default display.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the default #WnckScreen. The returned #WnckScreen is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Screen" c:type="WnckScreen*"/>
        </return-value>
      </function>
      <function name="get_for_root" c:identifier="wnck_screen_get_for_root">
        <doc xml:space="preserve">Gets the #WnckScreen for the root window at @root_window_id, or
%NULL if no #WnckScreen exists for this root window.

This function does not work if wnck_screen_get() was not called for the
sought #WnckScreen before, and returns %NULL.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #WnckScreen for the root window at @root_window_id, or %NULL. The returned #WnckScreen is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Screen" c:type="WnckScreen*"/>
        </return-value>
        <parameters>
          <parameter name="root_window_id" transfer-ownership="none">
            <doc xml:space="preserve">an X window ID.</doc>
            <type name="gulong" c:type="gulong"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="active_window_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="previous_window" transfer-ownership="none">
            <type name="Window" c:type="WnckWindow*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="active_workspace_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="previous_workspace" transfer-ownership="none">
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="application_closed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="app" transfer-ownership="none">
            <type name="Application" c:type="WnckApplication*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="application_opened">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="app" transfer-ownership="none">
            <type name="Application" c:type="WnckApplication*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="background_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="class_group_closed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="class_group" transfer-ownership="none">
            <type name="ClassGroup" c:type="WnckClassGroup*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="class_group_opened">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="class_group" transfer-ownership="none">
            <type name="ClassGroup" c:type="WnckClassGroup*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="showing_desktop_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="viewports_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="window_closed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="WnckWindow*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="window_manager_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="window_opened">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Window" c:type="WnckWindow*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="window_stacking_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="workspace_created">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="space" transfer-ownership="none">
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="workspace_destroyed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="space" transfer-ownership="none">
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="calc_workspace_layout"
              c:identifier="wnck_screen_calc_workspace_layout"
              version="2.12"
              deprecated="2.20:">
        <doc xml:space="preserve">Calculates the layout of #WnckWorkspace, with additional information like
the row and column of the #WnckWorkspace with index @space_index.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="num_workspaces" transfer-ownership="none">
            <doc xml:space="preserve">the number of #WnckWorkspace on @screen, or -1 to let wnck_screen_calc_workspace_layout() find this number.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="space_index" transfer-ownership="none">
            <doc xml:space="preserve">the index of a #Workspace.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="layout" transfer-ownership="none">
            <doc xml:space="preserve">return location for the layout of #WnckWorkspace with additional information.</doc>
            <type name="WorkspaceLayout" c:type="WnckWorkspaceLayout*"/>
          </parameter>
        </parameters>
      </method>
      <method name="change_workspace_count"
              c:identifier="wnck_screen_change_workspace_count"
              version="2.2">
        <doc xml:space="preserve">Asks the window manager to change the number of #WnckWorkspace on @screen.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve">the number of #WnckWorkspace to request.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="force_update" c:identifier="wnck_screen_force_update">
        <doc xml:space="preserve">Synchronously and immediately updates the list of #WnckWindow on @screen.
This bypasses the standard update mechanism, where the list of #WnckWindow
is updated in the idle loop.

This is usually a bad idea for both performance and correctness reasons (to
get things right, you need to write model-view code that tracks changes, not
get a static list of open windows). However, this function can be useful for
small applications that just do something and then exit.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_active_window"
              c:identifier="wnck_screen_get_active_window">
        <doc xml:space="preserve">Gets the active #WnckWindow on @screen. May return %NULL sometimes, since
not all window managers guarantee that a window is always active.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the active #WnckWindow on @screen, or %NULL. The returned #WnckWindow is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Window" c:type="WnckWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_active_workspace"
              c:identifier="wnck_screen_get_active_workspace">
        <doc xml:space="preserve">Gets the active #WnckWorkspace on @screen. May return %NULL sometimes,
if libwnck is in a weird state due to the asynchronous nature of the
interaction with the window manager.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the active #WnckWorkspace on @screen, or %NULL. The returned #WnckWorkspace is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Workspace" c:type="WnckWorkspace*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_background_pixmap"
              c:identifier="wnck_screen_get_background_pixmap">
        <doc xml:space="preserve">Gets the X window ID of the background pixmap of @screen.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the X window ID of the background pixmap of @screen.</doc>
          <type name="gulong" c:type="gulong"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_height" c:identifier="wnck_screen_get_height">
        <doc xml:space="preserve">Gets the height of @screen.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the height of @screen.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_number"
              c:identifier="wnck_screen_get_number"
              version="2.20">
        <doc xml:space="preserve">Gets the index of @screen on the display to which it belongs. The first
#WnckScreen has an index of 0.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the index of @space on @screen, or -1 on errors.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_previously_active_window"
              c:identifier="wnck_screen_get_previously_active_window"
              version="2.8">
        <doc xml:space="preserve">Gets the previously active #WnckWindow on @screen. May return %NULL
sometimes, since not all window managers guarantee that a window is always
active.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the previously active #WnckWindow on @screen, or %NULL. The returned #WnckWindow is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Window" c:type="WnckWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_showing_desktop"
              c:identifier="wnck_screen_get_showing_desktop"
              version="2.2">
        <doc xml:space="preserve">Gets whether @screen is in the "showing the desktop" mode. This mode is
changed when a #WnckScreen::showing-desktop-changed signal gets emitted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window is fullscreen, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width" c:identifier="wnck_screen_get_width">
        <doc xml:space="preserve">Gets the width of @screen.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the width of @screen.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_window_manager_name"
              c:identifier="wnck_screen_get_window_manager_name"
              version="2.20">
        <doc xml:space="preserve">Gets the name of the window manager.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of the window manager, or %NULL if the window manager does not comply with the &lt;ulink url="http://standards.freedesktop.org/wm-spec/wm-spec-latest.html"&gt;EWMH&lt;/ulink&gt; specification.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_windows" c:identifier="wnck_screen_get_windows">
        <doc xml:space="preserve">Gets the list of #WnckWindow on @screen. The list is not in a defined
order, but should be "stable" (windows should not be reordered in it).
However, the stability of the list is established by the window manager, so
don't blame libwnck if it breaks down.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the list of #WnckWindow on @screen, or %NULL if there is no window on @screen. The list should not be modified nor freed, as it is owned by @screen.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Window"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_windows_stacked"
              c:identifier="wnck_screen_get_windows_stacked">
        <doc xml:space="preserve">Gets the list of #WnckWindow on @screen in bottom-to-top order.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the list of #WnckWindow in stacking order on @screen, or %NULL if there is no window on @screen. The list should not be modified nor freed, as it is owned by @screen.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Window"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_workspace" c:identifier="wnck_screen_get_workspace">
        <doc xml:space="preserve">Gets the #WnckWorkspace numbered @workspace on @screen.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #WnckWorkspace numbered @workspace on @screen, or %NULL if no such workspace exists. The returned #WnckWorkspace is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Workspace" c:type="WnckWorkspace*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve">a workspace index, starting from 0.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_workspace_count"
              c:identifier="wnck_screen_get_workspace_count">
        <doc xml:space="preserve">Gets the number of #WnckWorkspace on @screen.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of #WnckWorkspace on @screen.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_workspace_index"
              c:identifier="wnck_screen_get_workspace_index"
              version="2.14"
              deprecated="Use wnck_workspace_get_number() instead."
              deprecated-version="2.20">
        <doc xml:space="preserve">Gets the index of @space on @screen. The first #WnckWorkspace has an
index of 0. See also wnck_workspace_get_number().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the index of @space on @screen, or -1 on errors.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_workspace_neighbor"
              c:identifier="wnck_screen_get_workspace_neighbor"
              version="2.14"
              deprecated="Use wnck_workspace_get_neighbor() instead."
              deprecated-version="2.20">
        <doc xml:space="preserve">Gets the neighbor #WnckWorkspace of @space in the @direction direction on
@screen.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the neighbor #WnckWorkspace of @space in the @direction direction on @screen, or %NULL if no such neighbor #WnckWorkspace exists. The returned #WnckWorkspace is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Workspace" c:type="WnckWorkspace*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </parameter>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve">direction in which to search the neighbor.</doc>
            <type name="MotionDirection" c:type="WnckMotionDirection"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_workspaces"
              c:identifier="wnck_screen_get_workspaces"
              version="2.20">
        <doc xml:space="preserve">Gets the list of #WnckWorkspace on @screen. The list is ordered: the
first element in the list is the first #WnckWorkspace, etc..</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the list of #WnckWorkspace on @screen. The list should not be modified nor freed, as it is owned by @screen.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Workspace"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="move_viewport"
              c:identifier="wnck_screen_move_viewport"
              version="2.4">
        <doc xml:space="preserve">Asks the window manager to move the viewport of the current #WnckWorkspace
on @screen.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">X offset in pixels of viewport.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">Y offset in pixels of viewport.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="net_wm_supports"
              c:identifier="wnck_screen_net_wm_supports">
        <doc xml:space="preserve">Gets whether the window manager for @screen supports a certain hint from
the &lt;ulink
url="http://standards.freedesktop.org/wm-spec/wm-spec-latest.html"&gt;Extended
Window Manager Hints specification&lt;/ulink&gt; (EWMH).

When using this function, keep in mind that the window manager can change
over time; so you should not use this function in a way that impacts
persistent application state. A common bug is that your application can
start up before the window manager does when the user logs in, and before
the window manager starts wnck_screen_net_wm_supports() will return %FALSE
for every property.

See also gdk_x11_screen_supports_net_wm_hint() in GDK.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the window manager for @screen supports the @atom hint, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="atom" transfer-ownership="none">
            <doc xml:space="preserve">a property atom.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="release_workspace_layout"
              c:identifier="wnck_screen_release_workspace_layout">
        <doc xml:space="preserve">Releases the ownership of the layout of #WnckWorkspace on @screen.
@current_token is used to verify that the caller is the owner of the layout.
If the verification fails, nothing happens.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="current_token" transfer-ownership="none">
            <doc xml:space="preserve">the token obtained through wnck_screen_try_set_workspace_layout().</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="toggle_showing_desktop"
              c:identifier="wnck_screen_toggle_showing_desktop"
              version="2.2">
        <doc xml:space="preserve">Asks the window manager to set the "showing the desktop" mode on @screen
according to @show.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="show" transfer-ownership="none">
            <doc xml:space="preserve">whether to activate the "showing the desktop" mode on @screen.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="try_set_workspace_layout"
              c:identifier="wnck_screen_try_set_workspace_layout">
        <doc xml:space="preserve">Tries to modify the layout of #WnckWorkspace on @screen. To do this, tries
to acquire ownership of the layout. If the current process is the owner of
the layout, @current_token is used to determine if the caller is the owner
(there might be more than one part of the same process trying to set the
layout). Since no more than one application should set this property of
@screen at a time, setting the layout is not guaranteed to work.

If @rows is 0, the actual number of rows will be determined based on
@columns and the number of #WnckWorkspace. If @columns is 0, the actual
number of columns will be determined based on @rows and the number of
#WnckWorkspace. @rows and @columns must not be 0 at the same time.

You have to release the ownership of the layout with
wnck_screen_release_workspace_layout() when you do not need it anymore.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a token to use for future calls to wnck_screen_try_set_workspace_layout() and to wnck_screen_release_workspace_layout(), or 0 if the layout could not be set.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </instance-parameter>
          <parameter name="current_token" transfer-ownership="none">
            <doc xml:space="preserve">a token. Use 0 if you do not called wnck_screen_try_set_workspace_layout() before, or if you did not keep the old token.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="rows" transfer-ownership="none">
            <doc xml:space="preserve">the number of rows to use for the #WnckWorkspace layout.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="columns" transfer-ownership="none">
            <doc xml:space="preserve">the number of columns to use for the #WnckWorkspace layout.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ScreenPrivate" c:type="WnckScreenPrivate*"/>
      </field>
      <glib:signal name="active-window-changed" when="last">
        <doc xml:space="preserve">Emitted when the active window on @screen has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="previously_active_window" transfer-ownership="none">
            <doc xml:space="preserve">the previously active #WnckWindow before this change.</doc>
            <type name="Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="active-workspace-changed" when="last">
        <doc xml:space="preserve">Emitted when the active workspace on @screen has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="previously_active_space" transfer-ownership="none">
            <doc xml:space="preserve">the previously active #WnckWorkspace before this change.</doc>
            <type name="Workspace"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="application-closed" when="last">
        <doc xml:space="preserve">Emitted when a #WnckApplication is closed on @screen.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">the closed #WnckApplication.</doc>
            <type name="Application"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="application-opened" when="last">
        <doc xml:space="preserve">Emitted when a new #WnckApplication is opened on @screen.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="app" transfer-ownership="none">
            <doc xml:space="preserve">the opened #WnckApplication.</doc>
            <type name="Application"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="background-changed" when="last">
        <doc xml:space="preserve">Emitted when the background on the root window of @screen has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="class-group-closed" when="last" version="2.20">
        <doc xml:space="preserve">Emitted when a #WnckClassGroup is closed on @screen.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="class_group" transfer-ownership="none">
            <doc xml:space="preserve">the closed #WnckClassGroup.</doc>
            <type name="ClassGroup"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="class-group-opened" when="last" version="2.20">
        <doc xml:space="preserve">Emitted when a new #WnckClassGroup is opened on @screen.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="class_group" transfer-ownership="none">
            <doc xml:space="preserve">the opened #WnckClassGroup.</doc>
            <type name="ClassGroup"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="showing-desktop-changed" when="last" version="2.20">
        <doc xml:space="preserve">Emitted when "showing the desktop" mode of @screen is toggled.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="viewports-changed" when="last" version="2.20">
        <doc xml:space="preserve">Emitted when a viewport position has changed in a #WnckWorkspace of
@screen or when a #WnckWorkspace of @screen gets or loses its viewport.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="window-closed" when="last">
        <doc xml:space="preserve">Emitted when a #WnckWindow is closed on @screen.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">the closed #WnckWindow.</doc>
            <type name="Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-manager-changed" when="last" version="2.20">
        <doc xml:space="preserve">Emitted when the window manager on @screen has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="window-opened" when="last">
        <doc xml:space="preserve">Emitted when a new #WnckWindow is opened on @screen.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">the opened #WnckWindow.</doc>
            <type name="Window"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="window-stacking-changed" when="last">
        <doc xml:space="preserve">Emitted when the stacking order of #WnckWindow on @screen has changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="workspace-created" when="last">
        <doc xml:space="preserve">Emitted when a #WnckWorkspace is created on @screen.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">the workspace that has been created.</doc>
            <type name="Workspace"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="workspace-destroyed" when="last">
        <doc xml:space="preserve">Emitted when a #WnckWorkspace is destroyed on @screen.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">the workspace that has been destroyed.</doc>
            <type name="Workspace"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ScreenClass"
            c:type="WnckScreenClass"
            glib:is-gtype-struct-for="Screen">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="active_window_changed">
        <callback name="active_window_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
            <parameter name="previous_window" transfer-ownership="none">
              <type name="Window" c:type="WnckWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="active_workspace_changed">
        <callback name="active_workspace_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
            <parameter name="previous_workspace" transfer-ownership="none">
              <type name="Workspace" c:type="WnckWorkspace*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="window_stacking_changed">
        <callback name="window_stacking_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="window_opened">
        <callback name="window_opened">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="WnckWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="window_closed">
        <callback name="window_closed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="WnckWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="workspace_created">
        <callback name="workspace_created">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
            <parameter name="space" transfer-ownership="none">
              <type name="Workspace" c:type="WnckWorkspace*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="workspace_destroyed">
        <callback name="workspace_destroyed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
            <parameter name="space" transfer-ownership="none">
              <type name="Workspace" c:type="WnckWorkspace*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="application_opened">
        <callback name="application_opened">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
            <parameter name="app" transfer-ownership="none">
              <type name="Application" c:type="WnckApplication*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="application_closed">
        <callback name="application_closed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
            <parameter name="app" transfer-ownership="none">
              <type name="Application" c:type="WnckApplication*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="background_changed">
        <callback name="background_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="class_group_opened">
        <callback name="class_group_opened">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
            <parameter name="class_group" transfer-ownership="none">
              <type name="ClassGroup" c:type="WnckClassGroup*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="class_group_closed">
        <callback name="class_group_closed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
            <parameter name="class_group" transfer-ownership="none">
              <type name="ClassGroup" c:type="WnckClassGroup*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="showing_desktop_changed">
        <callback name="showing_desktop_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="viewports_changed">
        <callback name="viewports_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="window_manager_changed">
        <callback name="window_manager_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="Screen" c:type="WnckScreen*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pad2">
        <callback name="pad2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad3">
        <callback name="pad3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad4">
        <callback name="pad4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad5">
        <callback name="pad5">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad6">
        <callback name="pad6">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="ScreenPrivate" c:type="WnckScreenPrivate" disguised="1">
    </record>
    <class name="Selector"
           c:symbol-prefix="selector"
           c:type="WnckSelector"
           parent="Gtk.MenuBar"
           glib:type-name="WnckSelector"
           glib:get-type="wnck_selector_get_type"
           glib:type-struct="SelectorClass">
      <doc xml:space="preserve">The #WnckSelector struct contains only private fields and should not be
directly accessed.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="wnck_selector_new" version="2.10">
        <doc xml:space="preserve">Creates a new #WnckSelector. The #WnckSelector will list #WnckWindow of the
#WnckScreen it is on.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a newly created #WnckSelector.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="Gtk.MenuBar" c:type="GtkMenuBar"/>
      </field>
      <field name="priv">
        <type name="SelectorPrivate" c:type="WnckSelectorPrivate*"/>
      </field>
    </class>
    <record name="SelectorClass"
            c:type="WnckSelectorClass"
            glib:is-gtype-struct-for="Selector">
      <field name="parent_class">
        <type name="Gtk.MenuBarClass" c:type="GtkMenuBarClass"/>
      </field>
      <field name="pad1">
        <callback name="pad1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad2">
        <callback name="pad2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad3">
        <callback name="pad3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad4">
        <callback name="pad4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="SelectorPrivate" c:type="WnckSelectorPrivate" disguised="1">
    </record>
    <class name="Tasklist"
           c:symbol-prefix="tasklist"
           c:type="WnckTasklist"
           parent="Gtk.Container"
           glib:type-name="WnckTasklist"
           glib:get-type="wnck_tasklist_get_type"
           glib:type-struct="TasklistClass">
      <doc xml:space="preserve">The #WnckTasklist struct contains only private fields and should not be
directly accessed.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="wnck_tasklist_new">
        <doc xml:space="preserve">Creates a new #WnckTasklist. The #WnckTasklist will list #WnckWindow of the
#WnckScreen it is on.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a newly created #WnckTasklist.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">deprecated argument, can be %NULL.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_minimum_height"
              c:identifier="wnck_tasklist_get_minimum_height"
              deprecated="2.20:">
        <doc xml:space="preserve">Returns -1.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">-1.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tasklist" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckTasklist.</doc>
            <type name="Tasklist" c:type="WnckTasklist*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_minimum_width"
              c:identifier="wnck_tasklist_get_minimum_width"
              deprecated="2.20:">
        <doc xml:space="preserve">Returns -1.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">-1.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="tasklist" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckTasklist.</doc>
            <type name="Tasklist" c:type="WnckTasklist*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_size_hint_list"
              c:identifier="wnck_tasklist_get_size_hint_list">
        <doc xml:space="preserve">Since a #WnckTasklist does not have a fixed size (#WnckWindow can be grouped
when needed, for example), the standard size request mechanism in GTK+ is
not enough to announce what sizes can be used by @tasklist. The size hints
mechanism is a solution for this. See panel_applet_set_size_hints() for more
information.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a list of size hints that can be used to allocate an appropriate size for @tasklist.</doc>
          <type name="gint" c:type="const int*"/>
        </return-value>
        <parameters>
          <instance-parameter name="tasklist" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckTasklist.</doc>
            <type name="Tasklist" c:type="WnckTasklist*"/>
          </instance-parameter>
          <parameter name="n_elements" transfer-ownership="none">
            <doc xml:space="preserve">return location for the number of elements in the array returned by this function. This number should always be pair.</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_button_relief"
              c:identifier="wnck_tasklist_set_button_relief"
              version="2.12">
        <doc xml:space="preserve">Sets the relief type of the buttons in @tasklist to @relief. The main use of
this function is proper integration of #WnckTasklist in panels with
non-system backgrounds.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tasklist" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckTasklist.</doc>
            <type name="Tasklist" c:type="WnckTasklist*"/>
          </instance-parameter>
          <parameter name="relief" transfer-ownership="none">
            <doc xml:space="preserve">a relief type.</doc>
            <type name="Gtk.ReliefStyle" c:type="GtkReliefStyle"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_grouping" c:identifier="wnck_tasklist_set_grouping">
        <doc xml:space="preserve">Sets the grouping policy for @tasklist to @grouping.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tasklist" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckTasklist.</doc>
            <type name="Tasklist" c:type="WnckTasklist*"/>
          </instance-parameter>
          <parameter name="grouping" transfer-ownership="none">
            <doc xml:space="preserve">a grouping policy.</doc>
            <type name="TasklistGroupingType"
                  c:type="WnckTasklistGroupingType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_grouping_limit"
              c:identifier="wnck_tasklist_set_grouping_limit">
        <doc xml:space="preserve">Sets the maximum size of buttons in @tasklist before @tasklist tries to
group #WnckWindow in the same #WnckApplication in only one button. This
limit is valid only when the grouping policy of @tasklist is
%WNCK_TASKLIST_AUTO_GROUP.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tasklist" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckTasklist.</doc>
            <type name="Tasklist" c:type="WnckTasklist*"/>
          </instance-parameter>
          <parameter name="limit" transfer-ownership="none">
            <doc xml:space="preserve">a size in pixels.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_loader"
              c:identifier="wnck_tasklist_set_icon_loader"
              version="2.2"
              introspectable="0">
        <doc xml:space="preserve">Sets a function to be used for loading icons.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tasklist" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckTasklist</doc>
            <type name="Tasklist" c:type="WnckTasklist*"/>
          </instance-parameter>
          <parameter name="load_icon_func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve">icon loader function</doc>
            <type name="LoadIconFunction" c:type="WnckLoadIconFunction"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">data for icon loader function</doc>
            <type name="gpointer" c:type="void*"/>
          </parameter>
          <parameter name="free_data_func"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve">function to free the data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_include_all_workspaces"
              c:identifier="wnck_tasklist_set_include_all_workspaces">
        <doc xml:space="preserve">Sets @tasklist to display #WnckWindow from all #WnckWorkspace or not,
according to @include_all_workspaces.

Note that if the active #WnckWorkspace has a viewport and if
@include_all_workspaces is %FALSE, then only the #WnckWindow visible in the
viewport are displayed in @tasklist. The rationale for this is that the
viewport is generally used to implement workspace-like behavior. A
side-effect of this is that, when using multiple #WnckWorkspace with
viewport, it is not possible to show all #WnckWindow from a #WnckWorkspace
(even those that are not visible in the viewport) in @tasklist without
showing all #WnckWindow from all #WnckWorkspace.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tasklist" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckTasklist.</doc>
            <type name="Tasklist" c:type="WnckTasklist*"/>
          </instance-parameter>
          <parameter name="include_all_workspaces" transfer-ownership="none">
            <doc xml:space="preserve">whether to display #WnckWindow from all #WnckWorkspace in @tasklist.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_minimum_height"
              c:identifier="wnck_tasklist_set_minimum_height"
              deprecated="2.20:">
        <doc xml:space="preserve">Does nothing.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tasklist" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckTasklist.</doc>
            <type name="Tasklist" c:type="WnckTasklist*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">a minimum height in pixels.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_minimum_width"
              c:identifier="wnck_tasklist_set_minimum_width"
              deprecated="2.20:">
        <doc xml:space="preserve">Does nothing.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tasklist" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckTasklist.</doc>
            <type name="Tasklist" c:type="WnckTasklist*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve">a minimum width in pixels.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_screen"
              c:identifier="wnck_tasklist_set_screen"
              version="2.2"
              deprecated="2.20:">
        <doc xml:space="preserve">Does nothing.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tasklist" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckTasklist.</doc>
            <type name="Tasklist" c:type="WnckTasklist*"/>
          </instance-parameter>
          <parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckScreen.</doc>
            <type name="Screen" c:type="WnckScreen*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_switch_workspace_on_unminimize"
              c:identifier="wnck_tasklist_set_switch_workspace_on_unminimize">
        <doc xml:space="preserve">Sets @tasklist to activate or not the #WnckWorkspace a #WnckWindow is on
when unminimizing it, according to @switch_workspace_on_unminimize.

FIXME: does it still work?</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="tasklist" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckTasklist.</doc>
            <type name="Tasklist" c:type="WnckTasklist*"/>
          </instance-parameter>
          <parameter name="switch_workspace_on_unminimize"
                     transfer-ownership="none">
            <doc xml:space="preserve">whether to activate the #WnckWorkspace a #WnckWindow is on when unminimizing it.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="Gtk.Container" c:type="GtkContainer"/>
      </field>
      <field name="priv">
        <type name="TasklistPrivate" c:type="WnckTasklistPrivate*"/>
      </field>
    </class>
    <record name="TasklistClass"
            c:type="WnckTasklistClass"
            glib:is-gtype-struct-for="Tasklist">
      <field name="parent_class">
        <type name="Gtk.ContainerClass" c:type="GtkContainerClass"/>
      </field>
      <field name="pad1">
        <callback name="pad1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad2">
        <callback name="pad2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad3">
        <callback name="pad3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad4">
        <callback name="pad4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="TasklistGroupingType"
                 glib:type-name="WnckTasklistGroupingType"
                 glib:get-type="wnck_tasklist_grouping_type_get_type"
                 c:type="WnckTasklistGroupingType">
      <doc xml:space="preserve">Type defining the policy of the #WnckTasklist for grouping multiple
#WnckWindow of the same #WnckApplication.</doc>
      <member name="never_group"
              value="0"
              c:identifier="WNCK_TASKLIST_NEVER_GROUP"
              glib:nick="never-group">
        <doc xml:space="preserve">never group multiple #WnckWindow of the same #WnckApplication.</doc>
      </member>
      <member name="auto_group"
              value="1"
              c:identifier="WNCK_TASKLIST_AUTO_GROUP"
              glib:nick="auto-group">
        <doc xml:space="preserve">group multiple #WnckWindow of the same #WnckApplication for some #WnckApplication, when there is not enough place to have a good-looking list of all #WnckWindow.</doc>
      </member>
      <member name="always_group"
              value="2"
              c:identifier="WNCK_TASKLIST_ALWAYS_GROUP"
              glib:nick="always-group">
        <doc xml:space="preserve">always group multiple #WnckWindow of the same #WnckApplication, for all #WnckApplication.</doc>
      </member>
    </enumeration>
    <record name="TasklistPrivate" c:type="WnckTasklistPrivate" disguised="1">
    </record>
    <class name="Window"
           c:symbol-prefix="window"
           c:type="WnckWindow"
           parent="GObject.Object"
           glib:type-name="WnckWindow"
           glib:get-type="wnck_window_get_type"
           glib:type-struct="WindowClass">
      <doc xml:space="preserve">The #WnckWindow struct contains only private fields and should not be
directly accessed.</doc>
      <function name="get" c:identifier="wnck_window_get">
        <doc xml:space="preserve">Gets a preexisting #WnckWindow for the X window @xwindow. This will not
create a #WnckWindow if none exists. The function is robust against bogus
window IDs.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #WnckWindow for @xwindow. The returned #WnckWindow is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Window" c:type="WnckWindow*"/>
        </return-value>
        <parameters>
          <parameter name="xwindow" transfer-ownership="none">
            <doc xml:space="preserve">an X window ID.</doc>
            <type name="gulong" c:type="gulong"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="actions_changed">
        <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="WnckWindow*"/>
          </instance-parameter>
          <parameter name="changed_mask" transfer-ownership="none">
            <type name="WindowActions" c:type="WnckWindowActions"/>
          </parameter>
          <parameter name="new_actions" transfer-ownership="none">
            <type name="WindowActions" c:type="WnckWindowActions"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="geometry_changed">
        <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="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="icon_changed">
        <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="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="name_changed">
        <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="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="state_changed">
        <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="WnckWindow*"/>
          </instance-parameter>
          <parameter name="changed_mask" transfer-ownership="none">
            <type name="WindowState" c:type="WnckWindowState"/>
          </parameter>
          <parameter name="new_state" transfer-ownership="none">
            <type name="WindowState" c:type="WnckWindowState"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="workspace_changed">
        <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="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="activate"
              c:identifier="wnck_window_activate"
              version="2.10">
        <doc xml:space="preserve">Asks the window manager to make @window the active window. The
window manager may choose to raise @window along with focusing it, and may
decide to refuse the request (to not steal the focus if there is a more
recent user activity, for example).

This function existed before 2.10, but the @timestamp argument was missing
in earlier versions.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve">the X server timestamp of the user interaction event that caused this call to occur.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="activate_transient"
              c:identifier="wnck_window_activate_transient"
              version="2.10">
        <doc xml:space="preserve">If @window has transients, activates the most likely transient
instead of the window itself. Otherwise activates @window.

FIXME the ideal behavior of this function is probably to activate
the most recently active window among @window and its transients.
This is probably best implemented on the window manager side.

This function existed before 2.10, but the @timestamp argument was missing
in earlier versions.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve">the X server timestamp of the user interaction event that caused this call to occur.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="close" c:identifier="wnck_window_close" version="2.6">
        <doc xml:space="preserve">Closes @window.

This function existed before 2.6, but the @timestamp argument was missing
in earlier versions.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve">the X server timestamp of the user interaction event that caused this call to occur.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_actions" c:identifier="wnck_window_get_actions">
        <doc xml:space="preserve">Gets the actions that can be done for @window.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">bitmask of actions that can be done for @window.</doc>
          <type name="WindowActions" c:type="WnckWindowActions"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_application"
              c:identifier="wnck_window_get_application">
        <doc xml:space="preserve">Gets the #WnckApplication to which @window belongs.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #WnckApplication to which @window belongs. The returned #WnckApplication is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Application" c:type="WnckApplication*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_class_group"
              c:identifier="wnck_window_get_class_group"
              version="2.2">
        <doc xml:space="preserve">Gets the #WnckClassGroup to which @window belongs.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #WnckClassGroup to which @window belongs. The returned #WnckClassGroup is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="ClassGroup" c:type="WnckClassGroup*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_client_window_geometry"
              c:identifier="wnck_window_get_client_window_geometry"
              version="2.20">
        <doc xml:space="preserve">Gets the size and position of @window, as last received
in a ConfigureNotify event (i.e. this call does not round-trip
to the server, just gets the last size we were notified of).
The X and Y coordinates are relative to the root window.

The window manager usually adds a frame around windows. If
you need to know the size of @window with the frame, use
wnck_window_get_geometry().</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="xp" transfer-ownership="none">
            <doc xml:space="preserve">return location for X coordinate in pixels of @window.</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="yp" transfer-ownership="none">
            <doc xml:space="preserve">return location for Y coordinate in pixels of @window.</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="widthp" transfer-ownership="none">
            <doc xml:space="preserve">return location for width in pixels of @window.</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="heightp" transfer-ownership="none">
            <doc xml:space="preserve">return location for height in pixels of @window.</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_geometry" c:identifier="wnck_window_get_geometry">
        <doc xml:space="preserve">Gets the size and position of @window, including decorations. This
function uses the information last received in a ConfigureNotify
event and adjusts it according to the size of the frame that is
added by the window manager (this call does not round-trip to the
server, it just gets the last sizes that were notified). The
X and Y coordinates are relative to the root window.

If you need to know the actual size of @window ignoring the frame
added by the window manager, use wnck_window_get_client_window_geometry().</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="xp" transfer-ownership="none">
            <doc xml:space="preserve">return location for X coordinate in pixels of @window.</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="yp" transfer-ownership="none">
            <doc xml:space="preserve">return location for Y coordinate in pixels of @window.</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="widthp" transfer-ownership="none">
            <doc xml:space="preserve">return location for width in pixels of @window.</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="heightp" transfer-ownership="none">
            <doc xml:space="preserve">return location for height in pixels of @window.</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_group_leader"
              c:identifier="wnck_window_get_group_leader">
        <doc xml:space="preserve">Gets the group leader of the group of windows to which @window belongs.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the group leader of the group of windows to which @window belongs, or the X window ID of @window if @window does not belong to any group.</doc>
          <type name="gulong" c:type="gulong"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon"
              c:identifier="wnck_window_get_icon"
              introspectable="0">
        <doc xml:space="preserve">Gets the icon to be used for @window. If no icon was found, a fallback
icon is used. wnck_window_get_icon_is_fallback() can be used to tell if the
icon is the fallback icon.</doc>
        <return-value>
          <doc xml:space="preserve">the icon for @window. The caller should reference the returned &lt;classname&gt;GdkPixbuf&lt;/classname&gt; if it needs to keep the icon around.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_is_fallback"
              c:identifier="wnck_window_get_icon_is_fallback">
        <doc xml:space="preserve">Gets whether a default fallback icon is used for @window (because none
was set on @window).</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the icon for @window is a fallback, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name" c:identifier="wnck_window_get_icon_name">
        <doc xml:space="preserve">Gets the icon name of @window, as it should be displayed for an icon
(minimized state). Always returns some value, even if @window has no icon
name set; use wnck_window_has_icon_name() if you need to know whether the
returned icon name is "real" or not.

Contrast with wnck_window_get_name(), which returns @window&lt;!-- --&gt;'s
title, not its icon title.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the icon name of @window, or a fallback icon name if no icon name is available.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mini_icon"
              c:identifier="wnck_window_get_mini_icon"
              introspectable="0">
        <doc xml:space="preserve">Gets the mini-icon to be used for @window. If no mini-icon was found, a
fallback mini-icon is used. wnck_window_get_icon_is_fallback() can be used
to tell if the mini-icon is the fallback mini-icon.</doc>
        <return-value>
          <doc xml:space="preserve">the mini-icon for @window. The caller should reference the returned &lt;classname&gt;GdkPixbuf&lt;/classname&gt; if it needs to keep the icon around.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="wnck_window_get_name">
        <doc xml:space="preserve">Gets the name of @window, as it should be displayed in a pager
or tasklist. Always returns some value, even if @window has no name
set; use wnck_window_has_name() if you need to know whether the returned
name is "real" or not.

For icons titles, use wnck_window_get_icon_name() instead.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of @window, or a fallback name if no name is available.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pid" c:identifier="wnck_window_get_pid">
        <doc xml:space="preserve">Gets the process ID of @window.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the process ID of @window, or 0 if none is available.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_screen" c:identifier="wnck_window_get_screen">
        <doc xml:space="preserve">Gets the #WnckScreen @window is on.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #WnckScreen @window is on. The returned #WnckScreen is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Screen" c:type="WnckScreen*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_session_id" c:identifier="wnck_window_get_session_id">
        <doc xml:space="preserve">Gets the session ID for @window in Latin-1 encoding.
NOTE: this is invalid UTF-8. You can't display this
string in a GTK+ widget without converting to UTF-8.
See wnck_window_get_session_id_utf8().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the session ID for @window in Latin-1, or %NULL if @window has no session ID.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_session_id_utf8"
              c:identifier="wnck_window_get_session_id_utf8">
        <doc xml:space="preserve">Gets the session ID for @window in UTF-8 encoding.
The session ID should be in Latin-1 encoding, so the conversion should work,
but a broken client could set a session ID that might not be convertable to
UTF-8.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the session ID for @window in UTF-8, or %NULL if @window has no session ID.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sort_order"
              c:identifier="wnck_window_get_sort_order"
              version="2.10">
        <doc xml:space="preserve">Gets the sort order of @window, used for ordering of @window in
#WnckSelector and #WnckTasklist. The sort order is an internal state in
libwnck. The initial value is defined when the window is created.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the sort order of @window, or G_MAXINT if none is available.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_state" c:identifier="wnck_window_get_state">
        <doc xml:space="preserve">Gets the state of @window.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">bitmask of active states for @window.</doc>
          <type name="WindowState" c:type="WnckWindowState"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_transient"
              c:identifier="wnck_window_get_transient"
              version="2.12"
              introspectable="0">
        <doc xml:space="preserve">Gets the #WnckWindow for which @window is transient.</doc>
        <return-value>
          <doc xml:space="preserve">the #WnckWindow for which @window is transient, or %NULL if @window is not transient for any #WnckWindow.</doc>
          <type name="Window" c:type="WnckWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_window_type"
              c:identifier="wnck_window_get_window_type">
        <doc xml:space="preserve">Gets the semantic type of @window.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the semantic type of @window.</doc>
          <type name="WindowType" c:type="WnckWindowType"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_workspace" c:identifier="wnck_window_get_workspace">
        <doc xml:space="preserve">Gets the current workspace @window is on. If the window is pinned (on all
workspaces), or not on any workspaces, %NULL may be returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the single current workspace @window is on, or %NULL. The returned #WnckWorkspace is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Workspace" c:type="WnckWorkspace*"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xid" c:identifier="wnck_window_get_xid">
        <doc xml:space="preserve">Gets the X window ID of @window.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the X window ID of @window.</doc>
          <type name="gulong" c:type="gulong"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_icon_name"
              c:identifier="wnck_window_has_icon_name"
              version="2.16">
        <doc xml:space="preserve">Checks whether or not @window has an icon name.
wnck_window_get_icon_name() will always return some value, even if
@window has no icon name set; wnck_window_has_icon_name() can
be used to tell if that icon name is real or not.

(Note that if wnck_window_has_icon_name() returns %FALSE, but
wnck_window_has_name() returns %TRUE, then the name returned by
wnck_window_get_icon_name() is @window&lt;!-- --&gt;'s name. Only when both
methods return %FALSE does wnck_window_get_icon_name() return a
generic fallback name.)</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if wnck_window_get_icon_name() returns @window&lt;!-- --&gt;'s icon name, %FALSE if it returns a fallback name.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_name"
              c:identifier="wnck_window_has_name"
              version="2.16">
        <doc xml:space="preserve">Checks whether or not @window has a name. wnck_window_get_name()
will always return some value, even if @window has no name set;
wnck_window_has_name() can be used to tell if that name is
real or not.

For icons titles, use wnck_window_has_icon_name() instead.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if wnck_window_get_name() returns @window&lt;!-- --&gt;'s name, %FALSE if it returns a fallback name.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_above"
              c:identifier="wnck_window_is_above"
              version="2.14">
        <doc xml:space="preserve">Gets whether @window is above other windows. This state may change
anytime a #WnckWindow::state-changed signal gets emitted.

See wnck_window_make_above() for more details on this state.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window is above other windows, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_active" c:identifier="wnck_window_is_active">
        <doc xml:space="preserve">Gets whether @window is the active window on its #WnckScreen.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window is the active window on its #WnckScreen, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_below"
              c:identifier="wnck_window_is_below"
              version="2.20">
        <doc xml:space="preserve">Gets whether @window is below other windows. This state may change
anytime a #WnckWindow::state-changed signal gets emitted.

See wnck_window_make_below() for more details on this state.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window is below other windows, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_fullscreen"
              c:identifier="wnck_window_is_fullscreen"
              version="2.8">
        <doc xml:space="preserve">Gets whether @window is fullscreen. Fullscreen state may change
anytime a #WnckWindow::state-changed signal gets emitted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window is fullscreen, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_in_viewport"
              c:identifier="wnck_window_is_in_viewport"
              version="2.4">
        <doc xml:space="preserve">Gets %TRUE if @window appears in the current viewport of @workspace.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window appears in current viewport of @workspace, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_maximized" c:identifier="wnck_window_is_maximized">
        <doc xml:space="preserve">Gets whether @window is maximized. Maximization state may change
anytime a #WnckWindow::state-changed signal gets emitted.

As for GDK, "maximized" means both vertically and horizontally. If @window
is maximized in only one direction, then @window is not considered
maximized.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window is maximized in both directions, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_maximized_horizontally"
              c:identifier="wnck_window_is_maximized_horizontally">
        <doc xml:space="preserve">Gets whether @window is maximized horizontally. Horizontal maximization
state may change anytime a #WnckWindow::state-changed signal gets emitted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window is maximized horizontally, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_maximized_vertically"
              c:identifier="wnck_window_is_maximized_vertically">
        <doc xml:space="preserve">Gets whether @window is maximized vertically. vertiVal maximization
state may change anytime a #WnckWindow::state-changed signal gets emitted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window is maximized vertically, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_minimized" c:identifier="wnck_window_is_minimized">
        <doc xml:space="preserve">Gets whether @window is minimized. Minimization state may change anytime
a #WnckWindow::state-changed signal gets emitted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window is minimized, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_most_recently_activated"
              c:identifier="wnck_window_is_most_recently_activated"
              version="2.8">
        <doc xml:space="preserve">Gets whether @window is the most recently activated window on its
#WnckScreen.

The most recently activated window is identical to the active
window for click and sloppy focus methods (since a window is always
active in those cases) but differs slightly for mouse focus since
there often is no active window.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window was the most recently activated window on its #WnckScreen, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_on_workspace"
              c:identifier="wnck_window_is_on_workspace">
        <doc xml:space="preserve">Gets whether @window appears on @workspace.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window appears on @workspace, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_pinned" c:identifier="wnck_window_is_pinned">
        <doc xml:space="preserve">Gets whether @window is on all workspace. Pinned state may change
anytime a #WnckWindow::workspace-changed signal gets emitted, but not when
a #WnckWindow::state-changed gets emitted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window is on all workspaces, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_shaded" c:identifier="wnck_window_is_shaded">
        <doc xml:space="preserve">Gets whether @window is shaded. Shade state may change anytime
a #WnckWindow::state-changed signal gets emitted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window is shaded, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_skip_pager" c:identifier="wnck_window_is_skip_pager">
        <doc xml:space="preserve">Gets whether @window is included on pagers. This state may change
anytime a #WnckWindow::state-changed signal gets emitted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window is included on pagers, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_skip_tasklist"
              c:identifier="wnck_window_is_skip_tasklist">
        <doc xml:space="preserve">Gets whether @window is included on tasklists. This state may change
anytime a #WnckWindow::state-changed signal gets emitted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window is included on tasklists, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_sticky" c:identifier="wnck_window_is_sticky">
        <doc xml:space="preserve">Gets whether @window is sticky. Sticky state may change
anytime a #WnckWindow::state-changed signal gets emitted.

Sticky here means "stuck to the glass", i.e. does not scroll with the
viewport. In GDK/GTK+ (e.g. gdk_window_stick()/gtk_window_stick()), sticky
means "stuck to the glass" and &lt;emphasis&gt;also&lt;/emphasis&gt; that the window is
on all workspaces. But here it only means the viewport aspect of it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window is "stuck to the glass", %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_visible_on_workspace"
              c:identifier="wnck_window_is_visible_on_workspace">
        <doc xml:space="preserve">Like wnck_window_is_on_workspace(), but also checks that
the window is in a visible state (i.e. not minimized or shaded).</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window appears on @workspace in normal state, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="workspace" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </parameter>
        </parameters>
      </method>
      <method name="keyboard_move" c:identifier="wnck_window_keyboard_move">
        <doc xml:space="preserve">Asks the window manager to start moving @window via the keyboard.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="keyboard_size" c:identifier="wnck_window_keyboard_size">
        <doc xml:space="preserve">Asks the window manager to start resizing @window via the keyboard.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="make_above"
              c:identifier="wnck_window_make_above"
              version="2.14">
        <doc xml:space="preserve">Asks the window manager to put @window on top of most windows (@window will
not be on top of focused fullscreen windows, of other windows with this
setting and of dock windows).</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="make_below"
              c:identifier="wnck_window_make_below"
              version="2.20">
        <doc xml:space="preserve">Asks the window manager to put @window below most windows.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="maximize" c:identifier="wnck_window_maximize">
        <doc xml:space="preserve">Asks the window manager to maximize @window.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="maximize_horizontally"
              c:identifier="wnck_window_maximize_horizontally">
        <doc xml:space="preserve">Asks the window manager to maximize horizontally @window.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="maximize_vertically"
              c:identifier="wnck_window_maximize_vertically">
        <doc xml:space="preserve">Asks the window manager to maximize vertically @window.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="minimize" c:identifier="wnck_window_minimize">
        <doc xml:space="preserve">Minimizes @window.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="move_to_workspace"
              c:identifier="wnck_window_move_to_workspace">
        <doc xml:space="preserve">Asks the window manager to move @window to @space. If @window was pinned, it
will also result in @window being visible only on @space.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </parameter>
        </parameters>
      </method>
      <method name="needs_attention"
              c:identifier="wnck_window_needs_attention"
              version="2.12">
        <doc xml:space="preserve">Gets whether @window needs attention. This state may change anytime
a #WnckWindow::state-changed signal gets emitted.

This state depends on flags such as the demands_attention and is_urgent
hints.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window needs attention, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="or_transient_needs_attention"
              c:identifier="wnck_window_or_transient_needs_attention"
              version="2.12">
        <doc xml:space="preserve">Gets whether @window or one of its transients needs attention. This state
may change anytime a #WnckWindow::state-changed signal gets emitted.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @window or one of its transients needs attention, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="pin" c:identifier="wnck_window_pin">
        <doc xml:space="preserve">Asks the window manager to put @window on all workspaces.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_fullscreen"
              c:identifier="wnck_window_set_fullscreen"
              version="2.8">
        <doc xml:space="preserve">Asks the window manager to set the fullscreen state of @window according to
@fullscreen.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="fullscreen" transfer-ownership="none">
            <doc xml:space="preserve">whether to make @window fullscreen.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_geometry"
              c:identifier="wnck_window_set_geometry"
              version="2.16">
        <doc xml:space="preserve">Sets the size and position of @window. The X and Y coordinates should be
relative to the root window.

Note that the new size and position apply to @window with its frame added
by the window manager. Therefore, using wnck_window_set_geometry() with
the values returned by wnck_window_get_geometry() should be a no-op, while
using wnck_window_set_geometry() with the values returned by
wnck_window_get_client_window_geometry() should reduce the size of @window
and move it.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="gravity" transfer-ownership="none">
            <doc xml:space="preserve">the gravity point to use as a reference for the new position.</doc>
            <type name="WindowGravity" c:type="WnckWindowGravity"/>
          </parameter>
          <parameter name="geometry_mask" transfer-ownership="none">
            <doc xml:space="preserve">a bitmask containing flags for what should be set.</doc>
            <type name="WindowMoveResizeMask"
                  c:type="WnckWindowMoveResizeMask"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">new X coordinate in pixels of @window.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">new Y coordinate in pixels of @window.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">new width in pixels of @window.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">new height in pixels of @window.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_geometry"
              c:identifier="wnck_window_set_icon_geometry">
        <doc xml:space="preserve">Sets the icon geometry for @window. A typical use case for this is the
destination of the minimization animation of @window.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve">X coordinate in pixels.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve">Y coordinate in pixels.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve">width in pixels.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve">height in pixels.</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_skip_pager" c:identifier="wnck_window_set_skip_pager">
        <doc xml:space="preserve">Asks the window manager to make @window included or not included on pagers.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="skip" transfer-ownership="none">
            <doc xml:space="preserve">whether @window should be included on pagers.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_skip_tasklist"
              c:identifier="wnck_window_set_skip_tasklist">
        <doc xml:space="preserve">Asks the window manager to make @window included or not included on
tasklists.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="skip" transfer-ownership="none">
            <doc xml:space="preserve">whether @window should be included on tasklists.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sort_order"
              c:identifier="wnck_window_set_sort_order"
              version="2.20">
        <doc xml:space="preserve">Sets the sort order of @window. The sort order is used for ordering of
@window in #WnckSelector and #WnckTasklist.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="order" transfer-ownership="none">
            <doc xml:space="preserve">new sort order for @window.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_window_type"
              c:identifier="wnck_window_set_window_type"
              version="2.12">
        <doc xml:space="preserve">Sets the semantic type of @window to @wintype.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="wintype" transfer-ownership="none">
            <doc xml:space="preserve">a semantic type.</doc>
            <type name="WindowType" c:type="WnckWindowType"/>
          </parameter>
        </parameters>
      </method>
      <method name="shade" c:identifier="wnck_window_shade">
        <doc xml:space="preserve">Asks the window manager to shade @window.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="stick" c:identifier="wnck_window_stick">
        <doc xml:space="preserve">Asks the window manager to keep the @window&lt;!-- --&gt;'s position fixed on the
screen, even when the workspace or viewport scrolls.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="transient_is_most_recently_activated"
              c:identifier="wnck_window_transient_is_most_recently_activated"
              version="2.12">
        <doc xml:space="preserve">Gets whether one of the transients of @window is the most
recently activated window. See
wnck_window_is_most_recently_activated() for a more complete
description of what is meant by most recently activated.  This
function is needed because clicking on a #WnckTasklist once will
activate a transient instead of @window itself
(wnck_window_activate_transient), and clicking again should
minimize @window and its transients.  (Not doing this can be
especially annoying in the case of modal dialogs that don't appear
in the #WnckTaslist).</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if one of the transients of @window is the most recently activated window, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unmake_above"
              c:identifier="wnck_window_unmake_above"
              version="2.14">
        <doc xml:space="preserve">Asks the window manager to not put @window on top of most windows, and to
put it again in the stack with other windows.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unmake_below"
              c:identifier="wnck_window_unmake_below"
              version="2.20">
        <doc xml:space="preserve">Asks the window manager to not put @window below most windows, and to
put it again in the stack with other windows.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unmaximize" c:identifier="wnck_window_unmaximize">
        <doc xml:space="preserve">Asks the window manager to unmaximize @window.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unmaximize_horizontally"
              c:identifier="wnck_window_unmaximize_horizontally">
        <doc xml:space="preserve">Asks the window manager to unmaximize horizontally @window.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unmaximize_vertically"
              c:identifier="wnck_window_unmaximize_vertically">
        <doc xml:space="preserve">Asks the window manager to unmaximize vertically @window.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unminimize" c:identifier="wnck_window_unminimize">
        <doc xml:space="preserve">Unminimizes @window by activating it or one of its transients. See
wnck_window_activate_transient() for details on how the activation is done.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve">the X server timestamp of the user interaction event that caused this call to occur.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="unpin" c:identifier="wnck_window_unpin">
        <doc xml:space="preserve">Asks the window manager to put @window only in the currently active
workspace, if @window was previously pinned. If @window was not pinned,
does not change @window&lt;!-- --&gt;'s workspace. If the active workspace
is not known for some reason (it should not happen much), sets
@window&lt;!-- --&gt;'s workspace to the first workspace.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unshade" c:identifier="wnck_window_unshade">
        <doc xml:space="preserve">Asks the window manager to unshade @window.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unstick" c:identifier="wnck_window_unstick">
        <doc xml:space="preserve">Asks the window manager to not have @window&lt;!-- --&gt;'s position fixed on the
screen when the workspace or viewport scrolls.</doc>
        <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">a #WnckWindow.</doc>
            <type name="Window" c:type="WnckWindow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="WindowPrivate" c:type="WnckWindowPrivate*"/>
      </field>
      <glib:signal name="actions-changed" when="last">
        <doc xml:space="preserve">Emitted when the actions availabilities for @window change.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="changed_mask" transfer-ownership="none">
            <doc xml:space="preserve">the bitmask containing bits set for all actions availabilities for @window that have changed.</doc>
            <type name="WindowActions"/>
          </parameter>
          <parameter name="new_state" transfer-ownership="none">
            <doc xml:space="preserve">the new actions availabilities for @window.</doc>
            <type name="WindowActions"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="geometry-changed" when="last">
        <doc xml:space="preserve">Emitted when the geometry of @window changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="icon-changed" when="last">
        <doc xml:space="preserve">Emitted when the icon of @window changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="name-changed" when="last">
        <doc xml:space="preserve">Emitted when the name of @window changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="state-changed" when="last">
        <doc xml:space="preserve">Emitted when the state of @window changes. This can happen when @window is
(un)minimized, (un)maximized, (un)sticked, (un)shaded, (un)made above,
(un)made below, (un)set fullscreen, when it needs attention, etc. See
#WnckWindowState for the complete list of states that might have changed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="changed_mask" transfer-ownership="none">
            <doc xml:space="preserve">the bitmask containing bits set for all states of @window that have changed.</doc>
            <type name="WindowState"/>
          </parameter>
          <parameter name="new_state" transfer-ownership="none">
            <doc xml:space="preserve">the new state of @window.</doc>
            <type name="WindowState"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="workspace-changed" when="last">
        <doc xml:space="preserve">Emitted when the current workspace of @window changes, or if @window has
been pinned or unpinned.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <bitfield name="WindowActions"
              glib:type-name="WnckWindowActions"
              glib:get-type="wnck_window_actions_get_type"
              c:type="WnckWindowActions">
      <doc xml:space="preserve">Type used as a bitmask to describe the actions that can be done for a
#WnckWindow.</doc>
      <member name="move"
              value="1"
              c:identifier="WNCK_WINDOW_ACTION_MOVE"
              glib:nick="move">
        <doc xml:space="preserve">the window may be moved around the screen.</doc>
      </member>
      <member name="resize"
              value="2"
              c:identifier="WNCK_WINDOW_ACTION_RESIZE"
              glib:nick="resize">
        <doc xml:space="preserve">the window may be resized.</doc>
      </member>
      <member name="shade"
              value="4"
              c:identifier="WNCK_WINDOW_ACTION_SHADE"
              glib:nick="shade">
        <doc xml:space="preserve">the window may be shaded.</doc>
      </member>
      <member name="stick"
              value="8"
              c:identifier="WNCK_WINDOW_ACTION_STICK"
              glib:nick="stick">
        <doc xml:space="preserve">the window may be sticked.</doc>
      </member>
      <member name="maximize_horizontally"
              value="16"
              c:identifier="WNCK_WINDOW_ACTION_MAXIMIZE_HORIZONTALLY"
              glib:nick="maximize-horizontally">
        <doc xml:space="preserve">the window may be maximized horizontally.</doc>
      </member>
      <member name="maximize_vertically"
              value="32"
              c:identifier="WNCK_WINDOW_ACTION_MAXIMIZE_VERTICALLY"
              glib:nick="maximize-vertically">
        <doc xml:space="preserve">the window may be maximized vertically.</doc>
      </member>
      <member name="change_workspace"
              value="64"
              c:identifier="WNCK_WINDOW_ACTION_CHANGE_WORKSPACE"
              glib:nick="change-workspace">
        <doc xml:space="preserve">the window may be moved between workspaces, or (un)pinned.</doc>
      </member>
      <member name="close"
              value="128"
              c:identifier="WNCK_WINDOW_ACTION_CLOSE"
              glib:nick="close">
        <doc xml:space="preserve">the window may be closed.</doc>
      </member>
      <member name="unmaximize_horizontally"
              value="256"
              c:identifier="WNCK_WINDOW_ACTION_UNMAXIMIZE_HORIZONTALLY"
              glib:nick="unmaximize-horizontally">
        <doc xml:space="preserve">the window may be unmaximized horizontally.</doc>
      </member>
      <member name="unmaximize_vertically"
              value="512"
              c:identifier="WNCK_WINDOW_ACTION_UNMAXIMIZE_VERTICALLY"
              glib:nick="unmaximize-vertically">
        <doc xml:space="preserve">the window may be maximized vertically.</doc>
      </member>
      <member name="unshade"
              value="1024"
              c:identifier="WNCK_WINDOW_ACTION_UNSHADE"
              glib:nick="unshade">
        <doc xml:space="preserve">the window may be unshaded.</doc>
      </member>
      <member name="unstick"
              value="2048"
              c:identifier="WNCK_WINDOW_ACTION_UNSTICK"
              glib:nick="unstick">
        <doc xml:space="preserve">the window may be unsticked.</doc>
      </member>
      <member name="minimize"
              value="4096"
              c:identifier="WNCK_WINDOW_ACTION_MINIMIZE"
              glib:nick="minimize">
        <doc xml:space="preserve">the window may be minimized.</doc>
      </member>
      <member name="unminimize"
              value="8192"
              c:identifier="WNCK_WINDOW_ACTION_UNMINIMIZE"
              glib:nick="unminimize">
        <doc xml:space="preserve">the window may be unminimized.</doc>
      </member>
      <member name="maximize"
              value="16384"
              c:identifier="WNCK_WINDOW_ACTION_MAXIMIZE"
              glib:nick="maximize">
        <doc xml:space="preserve">the window may be maximized.</doc>
      </member>
      <member name="unmaximize"
              value="32768"
              c:identifier="WNCK_WINDOW_ACTION_UNMAXIMIZE"
              glib:nick="unmaximize">
        <doc xml:space="preserve">the window may be unmaximized.</doc>
      </member>
      <member name="fullscreen"
              value="65536"
              c:identifier="WNCK_WINDOW_ACTION_FULLSCREEN"
              glib:nick="fullscreen">
        <doc xml:space="preserve">the window may be brought to fullscreen.</doc>
      </member>
      <member name="above"
              value="131072"
              c:identifier="WNCK_WINDOW_ACTION_ABOVE"
              glib:nick="above">
        <doc xml:space="preserve">the window may be made above other windows.</doc>
      </member>
      <member name="below"
              value="262144"
              c:identifier="WNCK_WINDOW_ACTION_BELOW"
              glib:nick="below">
        <doc xml:space="preserve">the window may be made below other windows.</doc>
      </member>
    </bitfield>
    <record name="WindowClass"
            c:type="WnckWindowClass"
            glib:is-gtype-struct-for="Window">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="name_changed">
        <callback name="name_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="WnckWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="state_changed">
        <callback name="state_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="WnckWindow*"/>
            </parameter>
            <parameter name="changed_mask" transfer-ownership="none">
              <type name="WindowState" c:type="WnckWindowState"/>
            </parameter>
            <parameter name="new_state" transfer-ownership="none">
              <type name="WindowState" c:type="WnckWindowState"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="workspace_changed">
        <callback name="workspace_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="WnckWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="icon_changed">
        <callback name="icon_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="WnckWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="actions_changed">
        <callback name="actions_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="WnckWindow*"/>
            </parameter>
            <parameter name="changed_mask" transfer-ownership="none">
              <type name="WindowActions" c:type="WnckWindowActions"/>
            </parameter>
            <parameter name="new_actions" transfer-ownership="none">
              <type name="WindowActions" c:type="WnckWindowActions"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="geometry_changed">
        <callback name="geometry_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="window" transfer-ownership="none">
              <type name="Window" c:type="WnckWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pad1">
        <callback name="pad1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad2">
        <callback name="pad2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad3">
        <callback name="pad3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad4">
        <callback name="pad4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="WindowGravity"
                 version="2.16"
                 glib:type-name="WnckWindowGravity"
                 glib:get-type="wnck_window_gravity_get_type"
                 c:type="WnckWindowGravity">
      <doc xml:space="preserve">Flag used when changing the geometry of a #WnckWindow. This is the gravity
point to use as a reference for the new position.</doc>
      <member name="current"
              value="0"
              c:identifier="WNCK_WINDOW_GRAVITY_CURRENT"
              glib:nick="current">
        <doc xml:space="preserve">keep the current gravity point.</doc>
      </member>
      <member name="northwest"
              value="1"
              c:identifier="WNCK_WINDOW_GRAVITY_NORTHWEST"
              glib:nick="northwest">
        <doc xml:space="preserve">use the left top corner of the frame window as gravity point.</doc>
      </member>
      <member name="north"
              value="2"
              c:identifier="WNCK_WINDOW_GRAVITY_NORTH"
              glib:nick="north">
        <doc xml:space="preserve">use the center of the frame window's top side as gravity point.</doc>
      </member>
      <member name="northeast"
              value="3"
              c:identifier="WNCK_WINDOW_GRAVITY_NORTHEAST"
              glib:nick="northeast">
        <doc xml:space="preserve">use the right top corner of the frame window as gravity point.</doc>
      </member>
      <member name="west"
              value="4"
              c:identifier="WNCK_WINDOW_GRAVITY_WEST"
              glib:nick="west">
        <doc xml:space="preserve">use the center of the frame window's left side as gravity point.</doc>
      </member>
      <member name="center"
              value="5"
              c:identifier="WNCK_WINDOW_GRAVITY_CENTER"
              glib:nick="center">
        <doc xml:space="preserve">use the center of the frame window as gravity point.</doc>
      </member>
      <member name="east"
              value="6"
              c:identifier="WNCK_WINDOW_GRAVITY_EAST"
              glib:nick="east">
        <doc xml:space="preserve">use the center of the frame window's right side as gravity point.</doc>
      </member>
      <member name="southwest"
              value="7"
              c:identifier="WNCK_WINDOW_GRAVITY_SOUTHWEST"
              glib:nick="southwest">
        <doc xml:space="preserve">use the left bottom corner of the frame window as gravity point.</doc>
      </member>
      <member name="south"
              value="8"
              c:identifier="WNCK_WINDOW_GRAVITY_SOUTH"
              glib:nick="south">
        <doc xml:space="preserve">use the center of the frame window's bottom side as gravity point.</doc>
      </member>
      <member name="southeast"
              value="9"
              c:identifier="WNCK_WINDOW_GRAVITY_SOUTHEAST"
              glib:nick="southeast">
        <doc xml:space="preserve">use the right bottom corner of the frame window as gravity point.</doc>
      </member>
      <member name="static"
              value="10"
              c:identifier="WNCK_WINDOW_GRAVITY_STATIC"
              glib:nick="static">
        <doc xml:space="preserve">use the left top corner of the client window as gravity point.</doc>
      </member>
    </enumeration>
    <bitfield name="WindowMoveResizeMask"
              version="2.16"
              glib:type-name="WnckWindowMoveResizeMask"
              glib:get-type="wnck_window_move_resize_mask_get_type"
              c:type="WnckWindowMoveResizeMask">
      <doc xml:space="preserve">Flag used as a bitmask when changing the geometry of a #WnckWindow. This
indicates which part of the geometry should be changed.</doc>
      <member name="x"
              value="1"
              c:identifier="WNCK_WINDOW_CHANGE_X"
              glib:nick="x">
        <doc xml:space="preserve">X coordinate of the window should be changed.</doc>
      </member>
      <member name="y"
              value="2"
              c:identifier="WNCK_WINDOW_CHANGE_Y"
              glib:nick="y">
        <doc xml:space="preserve">Y coordinate of the window should be changed.</doc>
      </member>
      <member name="width"
              value="4"
              c:identifier="WNCK_WINDOW_CHANGE_WIDTH"
              glib:nick="width">
        <doc xml:space="preserve">width of the window should be changed.</doc>
      </member>
      <member name="height"
              value="8"
              c:identifier="WNCK_WINDOW_CHANGE_HEIGHT"
              glib:nick="height">
        <doc xml:space="preserve">height of the window should be changed.</doc>
      </member>
    </bitfield>
    <record name="WindowPrivate" c:type="WnckWindowPrivate" disguised="1">
    </record>
    <bitfield name="WindowState"
              glib:type-name="WnckWindowState"
              glib:get-type="wnck_window_state_get_type"
              c:type="WnckWindowState">
      <doc xml:space="preserve">Type used as a bitmask to describe the state of a #WnckWindow.</doc>
      <member name="minimized"
              value="1"
              c:identifier="WNCK_WINDOW_STATE_MINIMIZED"
              glib:nick="minimized">
        <doc xml:space="preserve">the window is minimized.</doc>
      </member>
      <member name="maximized_horizontally"
              value="2"
              c:identifier="WNCK_WINDOW_STATE_MAXIMIZED_HORIZONTALLY"
              glib:nick="maximized-horizontally">
        <doc xml:space="preserve">the window is horizontically maximized.</doc>
      </member>
      <member name="maximized_vertically"
              value="4"
              c:identifier="WNCK_WINDOW_STATE_MAXIMIZED_VERTICALLY"
              glib:nick="maximized-vertically">
        <doc xml:space="preserve">the window is vertically maximized.</doc>
      </member>
      <member name="shaded"
              value="8"
              c:identifier="WNCK_WINDOW_STATE_SHADED"
              glib:nick="shaded">
        <doc xml:space="preserve">the window is shaded.</doc>
      </member>
      <member name="skip_pager"
              value="16"
              c:identifier="WNCK_WINDOW_STATE_SKIP_PAGER"
              glib:nick="skip-pager">
        <doc xml:space="preserve">the window should not be included on pagers.</doc>
      </member>
      <member name="skip_tasklist"
              value="32"
              c:identifier="WNCK_WINDOW_STATE_SKIP_TASKLIST"
              glib:nick="skip-tasklist">
        <doc xml:space="preserve">the window should not be included on tasklists.</doc>
      </member>
      <member name="sticky"
              value="64"
              c:identifier="WNCK_WINDOW_STATE_STICKY"
              glib:nick="sticky">
        <doc xml:space="preserve">the window is sticky (see wnck_window_is_sticky()).</doc>
      </member>
      <member name="hidden"
              value="128"
              c:identifier="WNCK_WINDOW_STATE_HIDDEN"
              glib:nick="hidden">
        <doc xml:space="preserve">the window is not visible on its #WnckWorkspace and viewport (when minimized, for example).</doc>
      </member>
      <member name="fullscreen"
              value="256"
              c:identifier="WNCK_WINDOW_STATE_FULLSCREEN"
              glib:nick="fullscreen">
        <doc xml:space="preserve">the window is fullscreen.</doc>
      </member>
      <member name="demands_attention"
              value="512"
              c:identifier="WNCK_WINDOW_STATE_DEMANDS_ATTENTION"
              glib:nick="demands-attention">
        <doc xml:space="preserve">the window needs attention (because the window requested activation but the window manager refused it, for example).</doc>
      </member>
      <member name="urgent"
              value="1024"
              c:identifier="WNCK_WINDOW_STATE_URGENT"
              glib:nick="urgent">
        <doc xml:space="preserve">the window requires a response from the user.</doc>
      </member>
      <member name="above"
              value="2048"
              c:identifier="WNCK_WINDOW_STATE_ABOVE"
              glib:nick="above">
        <doc xml:space="preserve">the window is above other windows (see wnck_window_make_above()).</doc>
      </member>
      <member name="below"
              value="4096"
              c:identifier="WNCK_WINDOW_STATE_BELOW"
              glib:nick="below">
        <doc xml:space="preserve">the window is below other windows (see wnck_window_make_below()).</doc>
      </member>
    </bitfield>
    <enumeration name="WindowType"
                 glib:type-name="WnckWindowType"
                 glib:get-type="wnck_window_type_get_type"
                 c:type="WnckWindowType">
      <doc xml:space="preserve">Type describing the semantic type of a #WnckWindow.</doc>
      <member name="normal"
              value="0"
              c:identifier="WNCK_WINDOW_NORMAL"
              glib:nick="normal">
        <doc xml:space="preserve">the window is a normal window.</doc>
      </member>
      <member name="desktop"
              value="1"
              c:identifier="WNCK_WINDOW_DESKTOP"
              glib:nick="desktop">
        <doc xml:space="preserve">the window is a desktop.</doc>
      </member>
      <member name="dock"
              value="2"
              c:identifier="WNCK_WINDOW_DOCK"
              glib:nick="dock">
        <doc xml:space="preserve">the window is a dock or a panel.</doc>
      </member>
      <member name="dialog"
              value="3"
              c:identifier="WNCK_WINDOW_DIALOG"
              glib:nick="dialog">
        <doc xml:space="preserve">the window is a dialog window.</doc>
      </member>
      <member name="toolbar"
              value="4"
              c:identifier="WNCK_WINDOW_TOOLBAR"
              glib:nick="toolbar">
        <doc xml:space="preserve">the window is a tearoff toolbar.</doc>
      </member>
      <member name="menu"
              value="5"
              c:identifier="WNCK_WINDOW_MENU"
              glib:nick="menu">
        <doc xml:space="preserve">the window is a tearoff menu.</doc>
      </member>
      <member name="utility"
              value="6"
              c:identifier="WNCK_WINDOW_UTILITY"
              glib:nick="utility">
        <doc xml:space="preserve">the window is a small persistent utility window, such as a palette or toolbox.</doc>
      </member>
      <member name="splashscreen"
              value="7"
              c:identifier="WNCK_WINDOW_SPLASHSCREEN"
              glib:nick="splashscreen">
        <doc xml:space="preserve">the window is a splash screen displayed as an application is starting up.</doc>
      </member>
    </enumeration>
    <class name="Workspace"
           c:symbol-prefix="workspace"
           c:type="WnckWorkspace"
           parent="GObject.Object"
           glib:type-name="WnckWorkspace"
           glib:get-type="wnck_workspace_get_type"
           glib:type-struct="WorkspaceClass">
      <doc xml:space="preserve">The #WnckWorkspace struct contains only private fields and should not be
directly accessed.</doc>
      <virtual-method name="name_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="space" transfer-ownership="none">
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="activate"
              c:identifier="wnck_workspace_activate"
              version="2.10">
        <doc xml:space="preserve">Asks the window manager to make @space the active workspace. The window
manager may decide to refuse the request (to not steal the focus if there is
a more recent user activity, for example).

This function existed before 2.10, but the @timestamp argument was missing
in earlier versions.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </instance-parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <doc xml:space="preserve">the X server timestamp of the user interaction event that caused this call to occur.</doc>
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="change_name"
              c:identifier="wnck_workspace_change_name"
              version="2.2">
        <doc xml:space="preserve">Changes the name of @space.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">new name for @space.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_height"
              c:identifier="wnck_workspace_get_height"
              version="2.4">
        <doc xml:space="preserve">Gets the height of @space.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the height of @space.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_layout_column"
              c:identifier="wnck_workspace_get_layout_column"
              version="2.20">
        <doc xml:space="preserve">Gets the column of @space in the #WnckWorkspace layout. The first column
has an index of 0 and is always the left column, regardless of the starting
corner set for the layout and regardless of the default direction of the
environment (i.e., in both Left-To-Right and Right-To-Left environments).</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the column of @space in the #WnckWorkspace layout, or -1 on errors.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_layout_row"
              c:identifier="wnck_workspace_get_layout_row"
              version="2.20">
        <doc xml:space="preserve">Gets the row of @space in the #WnckWorkspace layout. The first row has an
index of 0 and is always the top row, regardless of the starting corner set
for the layout.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the row of @space in the #WnckWorkspace layout, or -1 on errors.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="wnck_workspace_get_name">
        <doc xml:space="preserve">Gets the human-readable name that should be used to refer to @space. If
the user has not set a special name, a fallback like "Workspace 3" will be
used.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the name of @space.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_neighbor"
              c:identifier="wnck_workspace_get_neighbor"
              version="2.20"
              introspectable="0">
        <doc xml:space="preserve">Gets the neighbor #WnckWorkspace of @space in the @direction direction.</doc>
        <return-value>
          <doc xml:space="preserve">the neighbor #WnckWorkspace of @space in the @direction direction, or %NULL if no such neighbor #WnckWorkspace exists. The returned #WnckWorkspace is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Workspace" c:type="WnckWorkspace*"/>
        </return-value>
        <parameters>
          <instance-parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </instance-parameter>
          <parameter name="direction" transfer-ownership="none">
            <doc xml:space="preserve">direction in which to search the neighbor.</doc>
            <type name="MotionDirection" c:type="WnckMotionDirection"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_number" c:identifier="wnck_workspace_get_number">
        <doc xml:space="preserve">Gets the index of @space on the #WnckScreen to which it belongs. The
first workspace has an index of 0.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the index of @space on its #WnckScreen, or -1 on errors.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_screen"
              c:identifier="wnck_workspace_get_screen"
              introspectable="0">
        <doc xml:space="preserve">Gets the #WnckScreen @space is on.</doc>
        <return-value>
          <doc xml:space="preserve">the #WnckScreen @space is on. The returned #WnckScreen is owned by libwnck and must not be referenced or unreferenced.</doc>
          <type name="Screen" c:type="WnckScreen*"/>
        </return-value>
        <parameters>
          <instance-parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_viewport_x"
              c:identifier="wnck_workspace_get_viewport_x"
              version="2.4">
        <doc xml:space="preserve">Gets the X coordinate of the viewport in @space.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the X coordinate of the viewport in @space, or 0 if @space does not contain a viewport.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_viewport_y"
              c:identifier="wnck_workspace_get_viewport_y"
              version="2.4">
        <doc xml:space="preserve">Gets the Y coordinate of the viewport in @space.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the Y coordinate of the viewport in @space, or 0 if @space does not contain a viewport.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width"
              c:identifier="wnck_workspace_get_width"
              version="2.4">
        <doc xml:space="preserve">Gets the width of @space.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the width of @space.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_virtual"
              c:identifier="wnck_workspace_is_virtual"
              version="2.4">
        <doc xml:space="preserve">Gets whether @space contains a viewport.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @space contains a viewport, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="space" transfer-ownership="none">
            <doc xml:space="preserve">a #WnckWorkspace.</doc>
            <type name="Workspace" c:type="WnckWorkspace*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="WorkspacePrivate" c:type="WnckWorkspacePrivate*"/>
      </field>
      <glib:signal name="name-changed" when="last">
        <doc xml:space="preserve">Emitted when the name of @space changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="WorkspaceClass"
            c:type="WnckWorkspaceClass"
            glib:is-gtype-struct-for="Workspace">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="name_changed">
        <callback name="name_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="space" transfer-ownership="none">
              <type name="Workspace" c:type="WnckWorkspace*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="pad1">
        <callback name="pad1">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad2">
        <callback name="pad2">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad3">
        <callback name="pad3">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="pad4">
        <callback name="pad4">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <record name="WorkspaceLayout"
            c:type="WnckWorkspaceLayout"
            version="2.12"
            deprecated="2.20:">
      <doc xml:space="preserve">The #WnckWorkspaceLayout struct contains information about the layout of
#WnckWorkspace on a #WnckScreen, and the exact position of a specific
#WnckWorkspace.</doc>
      <field name="rows" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="cols" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="grid" writable="1">
        <type name="gint" c:type="int*"/>
      </field>
      <field name="grid_area" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="current_row" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="current_col" writable="1">
        <type name="gint" c:type="int"/>
      </field>
    </record>
    <record name="WorkspacePrivate"
            c:type="WnckWorkspacePrivate"
            disguised="1">
    </record>
    <enumeration name="_LayoutCorner" c:type="_WnckLayoutCorner">
      <member name="topleft"
              value="0"
              c:identifier="WNCK_LAYOUT_CORNER_TOPLEFT">
      </member>
      <member name="topright"
              value="1"
              c:identifier="WNCK_LAYOUT_CORNER_TOPRIGHT">
      </member>
      <member name="bottomright"
              value="2"
              c:identifier="WNCK_LAYOUT_CORNER_BOTTOMRIGHT">
      </member>
      <member name="bottomleft"
              value="3"
              c:identifier="WNCK_LAYOUT_CORNER_BOTTOMLEFT">
      </member>
    </enumeration>
    <enumeration name="_LayoutOrientation" c:type="_WnckLayoutOrientation">
      <member name="horizontal"
              value="0"
              c:identifier="WNCK_LAYOUT_ORIENTATION_HORIZONTAL">
      </member>
      <member name="vertical"
              value="1"
              c:identifier="WNCK_LAYOUT_ORIENTATION_VERTICAL">
      </member>
    </enumeration>
    <function name="create_window_action_menu"
              c:identifier="wnck_create_window_action_menu"
              introspectable="0"
              deprecated="Use wnck_action_menu_new() instead."
              deprecated-version="2.22">
      <doc xml:space="preserve">Creates a new #WnckActionMenu. The #WnckActionMenu will be filled with menu
items for window operations on @window.</doc>
      <return-value>
        <doc xml:space="preserve">a newly created #WnckActionMenu.</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve">the #WnckWindow for which a menu will be created.</doc>
          <type name="Window" c:type="WnckWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="gtk_window_set_dock_type"
              c:identifier="wnck_gtk_window_set_dock_type"
              deprecated="Use gdk_window_set_type_hint() instead."
              deprecated-version="2.20">
      <doc xml:space="preserve">Sets the semantic type of @window to %WNCK_WINDOW_DOCK.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve">a &lt;classname&gt;GtkWindow&lt;/classname&gt;.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="pid_read_resource_usage"
              c:identifier="wnck_pid_read_resource_usage"
              version="2.6">
      <doc xml:space="preserve">Looks for the X resource usage of the application with process ID @pid on
display @gdisplay. If no resource usage can be found, then all fields of
@usage are set to 0.

In order to find the resource usage of an application that does not have an
X window visible to libwnck (panel applets do not have any toplevel windows,
for example), wnck_pid_read_resource_usage() walks through the whole tree of
X windows. Since this walk is expensive in CPU, a cache is created. This
cache is updated in the background. This means there is a non-null
probability that no resource usage will be found for an application, even if
it is an X client. If this happens, calling wnck_pid_read_resource_usage()
again after a few seconds should work.

To properly work, this function requires the XRes extension on the X server.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="gdk_display" transfer-ownership="none">
          <doc xml:space="preserve">a &lt;classname&gt;GdkDisplay&lt;/classname&gt;.</doc>
          <type name="Gdk.Display" c:type="GdkDisplay*"/>
        </parameter>
        <parameter name="pid" transfer-ownership="none">
          <doc xml:space="preserve">a process ID.</doc>
          <type name="gulong" c:type="gulong"/>
        </parameter>
        <parameter name="usage" transfer-ownership="none">
          <doc xml:space="preserve">return location for the X resource usage of the application with process ID @pid.</doc>
          <type name="ResourceUsage" c:type="WnckResourceUsage*"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_client_type"
              c:identifier="wnck_set_client_type"
              version="2.14">
      <doc xml:space="preserve">Sets the role of the libwnck user.

The default role is %WNCK_CLIENT_TYPE_APPLICATION. Therefore, for
applications providing some window management features, like pagers or
tasklists, it is important to set the role to %WNCK_CLIENT_TYPE_PAGER for
libwnck to properly work.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ewmh_sourceindication_client_type"
                   transfer-ownership="none">
          <doc xml:space="preserve">a role for the client.</doc>
          <type name="ClientType" c:type="WnckClientType"/>
        </parameter>
      </parameters>
    </function>
    <function name="xid_read_resource_usage"
              c:identifier="wnck_xid_read_resource_usage"
              version="2.6">
      <doc xml:space="preserve">Looks for the X resource usage of the application owning the X window ID
@xid on display @gdisplay. If no resource usage can be found, then all
fields of @usage are set to 0.

To properly work, this function requires the XRes extension on the X server.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="gdk_display" transfer-ownership="none">
          <doc xml:space="preserve">a &lt;classname&gt;GdkDisplay&lt;/classname&gt;.</doc>
          <type name="Gdk.Display" c:type="GdkDisplay*"/>
        </parameter>
        <parameter name="xid" transfer-ownership="none">
          <doc xml:space="preserve">an X window ID.</doc>
          <type name="gulong" c:type="gulong"/>
        </parameter>
        <parameter name="usage" transfer-ownership="none">
          <doc xml:space="preserve">return location for the X resource usage of the application owning the X window ID @xid.</doc>
          <type name="ResourceUsage" c:type="WnckResourceUsage*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
