<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:doc="http://www.gtk.org/introspection/doc/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Gdk" version="4.0"/>
  <package name="gtk4-wayland"/>
  <c:include name="gdk/wayland/gdkwayland.h"/>
  <doc:format name="gi-docgen"/>
  <namespace name="GdkWayland"
             version="4.0"
             shared-library="libgtk-4.so.5.6"
             c:identifier-prefixes="Gdk"
             c:symbol-prefixes="gdk">
    <function-macro name="IS_WAYLAND_DEVICE"
                    c:identifier="GDK_IS_WAYLAND_DEVICE"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylanddevice.h" line="41"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WAYLAND_DEVICE_CLASS"
                    c:identifier="GDK_IS_WAYLAND_DEVICE_CLASS"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylanddevice.h" line="42"/>
      <parameters>
        <parameter name="c">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WAYLAND_DISPLAY"
                    c:identifier="GDK_IS_WAYLAND_DISPLAY"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylanddisplay.h" line="40"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WAYLAND_DISPLAY_CLASS"
                    c:identifier="GDK_IS_WAYLAND_DISPLAY_CLASS"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylanddisplay.h" line="41"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WAYLAND_MONITOR"
                    c:identifier="GDK_IS_WAYLAND_MONITOR"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylandmonitor.h" line="34"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WAYLAND_POPUP"
                    c:identifier="GDK_IS_WAYLAND_POPUP"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylandpopup.h" line="39"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WAYLAND_SEAT"
                    c:identifier="GDK_IS_WAYLAND_SEAT"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylandseat.h" line="41"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WAYLAND_SURFACE"
                    c:identifier="GDK_IS_WAYLAND_SURFACE"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylandsurface.h" line="38"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WAYLAND_TOPLEVEL"
                    c:identifier="GDK_IS_WAYLAND_TOPLEVEL"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylandtoplevel.h" line="39"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WAYLAND_DEVICE"
                    c:identifier="GDK_WAYLAND_DEVICE"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylanddevice.h" line="39"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WAYLAND_DEVICE_CLASS"
                    c:identifier="GDK_WAYLAND_DEVICE_CLASS"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylanddevice.h" line="40"/>
      <parameters>
        <parameter name="c">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WAYLAND_DEVICE_GET_CLASS"
                    c:identifier="GDK_WAYLAND_DEVICE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylanddevice.h" line="43"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WAYLAND_DISPLAY"
                    c:identifier="GDK_WAYLAND_DISPLAY"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylanddisplay.h" line="38"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WAYLAND_DISPLAY_CLASS"
                    c:identifier="GDK_WAYLAND_DISPLAY_CLASS"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylanddisplay.h" line="39"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WAYLAND_DISPLAY_GET_CLASS"
                    c:identifier="GDK_WAYLAND_DISPLAY_GET_CLASS"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylanddisplay.h" line="42"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WAYLAND_GL_CONTEXT"
                    c:identifier="GDK_WAYLAND_GL_CONTEXT"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylandglcontext.h" line="33"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WAYLAND_IS_GL_CONTEXT"
                    c:identifier="GDK_WAYLAND_IS_GL_CONTEXT"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylandglcontext.h" line="34"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WAYLAND_MONITOR"
                    c:identifier="GDK_WAYLAND_MONITOR"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylandmonitor.h" line="33"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WAYLAND_POPUP"
                    c:identifier="GDK_WAYLAND_POPUP"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylandpopup.h" line="38"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WAYLAND_SEAT"
                    c:identifier="GDK_WAYLAND_SEAT"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylandseat.h" line="40"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WAYLAND_SURFACE"
                    c:identifier="GDK_WAYLAND_SURFACE"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylandsurface.h" line="37"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WAYLAND_TOPLEVEL"
                    c:identifier="GDK_WAYLAND_TOPLEVEL"
                    introspectable="0">
      <source-position filename="gdk/wayland/gdkwaylandtoplevel.h" line="38"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <class name="WaylandDevice"
           c:symbol-prefix="wayland_device"
           c:type="GdkWaylandDevice"
           parent="Gdk.Device"
           glib:type-name="GdkWaylandDevice"
           glib:get-type="gdk_wayland_device_get_type"
           glib:type-struct="WaylandDeviceClass">
      <doc xml:space="preserve"
           filename="gdk/wayland/gdkseat-wayland.c"
           line="58">The Wayland implementation of `GdkDevice`.

Beyond the regular [class@Gdk.Device] API, the Wayland implementation
provides access to Wayland objects such as the `wl_seat` with
[method@GdkWayland.WaylandDevice.get_wl_seat], the `wl_keyboard` with
[method@GdkWayland.WaylandDevice.get_wl_keyboard] and the `wl_pointer` with
[method@GdkWayland.WaylandDevice.get_wl_pointer].</doc>
      <source-position filename="gdk/wayland/gdkwaylanddevice.h" line="36"/>
      <method name="get_node_path"
              c:identifier="gdk_wayland_device_get_node_path">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdkdevice-wayland.c"
             line="706">Returns the `/dev/input/event*` path of this device.

For `GdkDevice`s that possibly coalesce multiple hardware
devices (eg. mouse, keyboard, touch,...), this function
will return %NULL.

This is most notably implemented for devices of type
%GDK_SOURCE_PEN, %GDK_SOURCE_TABLET_PAD.</doc>
        <source-position filename="gdk/wayland/gdkwaylanddevice.h" line="58"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdkdevice-wayland.c"
               line="719">the `/dev/input/event*`
  path of this device</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdevice-wayland.c"
                 line="708">a `GdkDevice`</doc>
            <type name="WaylandDevice" c:type="GdkDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wl_keyboard"
              c:identifier="gdk_wayland_device_get_wl_keyboard"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdkdevice-wayland.c"
             line="620">Returns the Wayland `wl_keyboard` of a `GdkDevice`.</doc>
        <source-position filename="gdk/wayland/gdkwaylanddevice.h" line="53"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdkdevice-wayland.c"
               line="626">a Wayland `wl_keyboard`</doc>
          <type name="gpointer" c:type="wl_keyboard*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdevice-wayland.c"
                 line="622">a `GdkDevice`</doc>
            <type name="WaylandDevice" c:type="GdkDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wl_pointer"
              c:identifier="gdk_wayland_device_get_wl_pointer"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdkdevice-wayland.c"
             line="601">Returns the Wayland `wl_pointer` of a `GdkDevice`.</doc>
        <source-position filename="gdk/wayland/gdkwaylanddevice.h" line="51"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdkdevice-wayland.c"
               line="607">a Wayland `wl_pointer`</doc>
          <type name="gpointer" c:type="wl_pointer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdevice-wayland.c"
                 line="603">a `GdkDevice`</doc>
            <type name="WaylandDevice" c:type="GdkDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wl_seat"
              c:identifier="gdk_wayland_device_get_wl_seat"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdkdevice-wayland.c"
             line="582">Returns the Wayland `wl_seat` of a `GdkDevice`.</doc>
        <source-position filename="gdk/wayland/gdkwaylanddevice.h" line="49"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdkdevice-wayland.c"
               line="588">a Wayland `wl_seat`</doc>
          <type name="gpointer" c:type="wl_seat*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdevice-wayland.c"
                 line="584">a `GdkDevice`</doc>
            <type name="WaylandDevice" c:type="GdkDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_xkb_keymap"
              c:identifier="gdk_wayland_device_get_xkb_keymap"
              version="4.4">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdkdevice-wayland.c"
             line="639">Returns the `xkb_keymap` of a `GdkDevice`.</doc>
        <source-position filename="gdk/wayland/gdkwaylanddevice.h" line="55"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdkdevice-wayland.c"
               line="645">a `struct xkb_keymap`</doc>
          <type name="gpointer" c:type="xkb_keymap*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdevice-wayland.c"
                 line="641">a `GdkDevice`</doc>
            <type name="WaylandDevice" c:type="GdkDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="WaylandDeviceClass"
            c:type="GdkWaylandDeviceClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="WaylandDevice">
      <source-position filename="gdk/wayland/gdkwaylanddevice.h" line="36"/>
    </record>
    <class name="WaylandDisplay"
           c:symbol-prefix="wayland_display"
           c:type="GdkWaylandDisplay"
           parent="Gdk.Display"
           glib:type-name="GdkWaylandDisplay"
           glib:get-type="gdk_wayland_display_get_type"
           glib:type-struct="WaylandDisplayClass">
      <doc xml:space="preserve"
           filename="gdk/wayland/gdkdisplay-wayland.c"
           line="86">The Wayland implementation of `GdkDisplay`.

Beyond the regular [class@Gdk.Display] API, the Wayland implementation
provides access to Wayland objects such as the `wl_display` with
[method@GdkWayland.WaylandDisplay.get_wl_display], the `wl_compositor` with
[method@GdkWayland.WaylandDisplay.get_wl_compositor].

You can find out what Wayland globals are supported by a display
with [method@GdkWayland.WaylandDisplay.query_registry].</doc>
      <source-position filename="gdk/wayland/gdkwaylanddisplay.h" line="35"/>
      <method name="get_egl_display"
              c:identifier="gdk_wayland_display_get_egl_display"
              version="4.4">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdkglcontext-wayland.c"
             line="164">Retrieves the EGL display connection object for the given GDK display.</doc>
        <source-position filename="gdk/wayland/gdkwaylanddisplay.h" line="66"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdkglcontext-wayland.c"
               line="170">the EGL display</doc>
          <type name="gpointer" c:type="gpointer"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkglcontext-wayland.c"
                 line="166">a Wayland display</doc>
            <type name="WaylandDisplay" c:type="GdkDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_startup_notification_id"
              c:identifier="gdk_wayland_display_get_startup_notification_id"
              deprecated="1"
              deprecated-version="4.10.">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdkdisplay-wayland.c"
             line="1267">Gets the startup notification ID for a Wayland display, or `NULL`
if no ID has been defined.</doc>
        <source-position filename="gdk/wayland/gdkwaylanddisplay.h" line="56"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdkdisplay-wayland.c"
               line="1274">the startup notification ID for @display</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdisplay-wayland.c"
                 line="1269">a display</doc>
            <type name="WaylandDisplay" c:type="GdkDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wl_compositor"
              c:identifier="gdk_wayland_display_get_wl_compositor"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdkdisplay-wayland.c"
             line="1346">Returns the Wayland `wl_compositor` of a display.</doc>
        <source-position filename="gdk/wayland/gdkwaylanddisplay.h" line="50"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdkdisplay-wayland.c"
               line="1352">a Wayland `wl_compositor`</doc>
          <type name="gpointer" c:type="wl_compositor*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdisplay-wayland.c"
                 line="1348">a display</doc>
            <type name="WaylandDisplay" c:type="GdkDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wl_display"
              c:identifier="gdk_wayland_display_get_wl_display"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdkdisplay-wayland.c"
             line="1330">Returns the Wayland `wl_display` of a display.</doc>
        <source-position filename="gdk/wayland/gdkwaylanddisplay.h" line="48"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdkdisplay-wayland.c"
               line="1336">a Wayland `wl_display`</doc>
          <type name="gpointer" c:type="wl_display*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdisplay-wayland.c"
                 line="1332">a display</doc>
            <type name="WaylandDisplay" c:type="GdkDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="query_registry"
              c:identifier="gdk_wayland_display_query_registry">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdkdisplay-wayland.c"
             line="1362">Returns true if the interface was found in the display
`wl_registry.global` handler.</doc>
        <source-position filename="gdk/wayland/gdkwaylanddisplay.h" line="62"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdkdisplay-wayland.c"
               line="1370">true if the global is offered by the compositor</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdisplay-wayland.c"
                 line="1364">a display</doc>
            <type name="WaylandDisplay" c:type="GdkDisplay*"/>
          </instance-parameter>
          <parameter name="global" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdisplay-wayland.c"
                 line="1365">global interface to query in the registry</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_cursor_theme"
              c:identifier="gdk_wayland_display_set_cursor_theme"
              deprecated="1"
              deprecated-version="4.16">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdkdisplay-wayland.c"
             line="1311">Sets the cursor theme for the given @display.</doc>
        <doc-deprecated xml:space="preserve">Use the cursor-related properties of
  [GtkSettings](../gtk4/class.Settings.html) to set the cursor theme</doc-deprecated>
        <source-position filename="gdk/wayland/gdkwaylanddisplay.h" line="52"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdisplay-wayland.c"
                 line="1313">a display</doc>
            <type name="WaylandDisplay" c:type="GdkDisplay*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdisplay-wayland.c"
                 line="1314">the new cursor theme</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdisplay-wayland.c"
                 line="1315">the size to use for cursors</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_startup_notification_id"
              c:identifier="gdk_wayland_display_set_startup_notification_id"
              deprecated="1"
              deprecated-version="4.10.">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdkdisplay-wayland.c"
             line="1284">Sets the startup notification ID for a display.

This is usually taken from the value of the `DESKTOP_STARTUP_ID`
environment variable, but in some cases (such as the application not
being launched using exec()) it can come from other sources.

The startup ID is also what is used to signal that the startup is
complete (for example, when opening a window or when calling
[method@Gdk.Display.notify_startup_complete]).</doc>
        <doc-deprecated xml:space="preserve">Use [method@Gdk.Toplevel.set_startup_id]</doc-deprecated>
        <source-position filename="gdk/wayland/gdkwaylanddisplay.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdisplay-wayland.c"
                 line="1286">a display</doc>
            <type name="WaylandDisplay" c:type="GdkDisplay*"/>
          </instance-parameter>
          <parameter name="startup_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkdisplay-wayland.c"
                 line="1287">the startup notification ID (must be valid utf8)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
    </class>
    <record name="WaylandDisplayClass"
            c:type="GdkWaylandDisplayClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="WaylandDisplay">
      <source-position filename="gdk/wayland/gdkwaylanddisplay.h" line="35"/>
    </record>
    <class name="WaylandGLContext"
           c:symbol-prefix="wayland_gl_context"
           c:type="GdkWaylandGLContext"
           parent="Gdk.GLContext"
           glib:type-name="GdkWaylandGLContext"
           glib:get-type="gdk_wayland_gl_context_get_type"
           glib:type-struct="WaylandGLContextClass">
      <doc xml:space="preserve"
           filename="gdk/wayland/gdkglcontext-wayland.c"
           line="41">The Wayland implementation of `GdkGLContext`.</doc>
      <source-position filename="gdk/wayland/gdkwaylandglcontext.h" line="37"/>
    </class>
    <record name="WaylandGLContextClass"
            c:type="GdkWaylandGLContextClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="WaylandGLContext">
      <source-position filename="gdk/wayland/gdkwaylandglcontext.h" line="37"/>
    </record>
    <class name="WaylandMonitor"
           c:symbol-prefix="wayland_monitor"
           c:type="GdkWaylandMonitor"
           parent="Gdk.Monitor"
           glib:type-name="GdkWaylandMonitor"
           glib:get-type="gdk_wayland_monitor_get_type"
           glib:type-struct="WaylandMonitorClass">
      <doc xml:space="preserve"
           filename="gdk/wayland/gdkmonitor-wayland.c"
           line="28">The Wayland implementation of `GdkMonitor`.

Beyond the [class@Gdk.Monitor] API, the Wayland implementation
offers access to the Wayland `wl_output` object with
[method@GdkWayland.WaylandMonitor.get_wl_output].</doc>
      <source-position filename="gdk/wayland/gdkwaylandmonitor.h" line="37"/>
      <method name="get_wl_output"
              c:identifier="gdk_wayland_monitor_get_wl_output"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdkmonitor-wayland.c"
             line="429">Returns the Wayland `wl_output` of a `GdkMonitor`.</doc>
        <source-position filename="gdk/wayland/gdkwaylandmonitor.h" line="43"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdkmonitor-wayland.c"
               line="435">a Wayland `wl_output`</doc>
          <type name="gpointer" c:type="wl_output*"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkmonitor-wayland.c"
                 line="431">a `GdkMonitor`</doc>
            <type name="WaylandMonitor" c:type="GdkMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="WaylandMonitorClass"
            c:type="GdkWaylandMonitorClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="WaylandMonitor">
      <source-position filename="gdk/wayland/gdkwaylandmonitor.h" line="37"/>
    </record>
    <class name="WaylandPopup"
           c:symbol-prefix="wayland_popup"
           c:type="GdkWaylandPopup"
           parent="WaylandSurface"
           glib:type-name="GdkWaylandPopup"
           glib:get-type="gdk_wayland_popup_get_type">
      <doc xml:space="preserve"
           filename="gdk/wayland/gdkpopup-wayland.c"
           line="199">The Wayland implementation of `GdkPopup`.</doc>
      <implements name="Gdk.Popup"/>
    </class>
    <class name="WaylandSeat"
           c:symbol-prefix="wayland_seat"
           c:type="GdkWaylandSeat"
           parent="Gdk.Seat"
           glib:type-name="GdkWaylandSeat"
           glib:get-type="gdk_wayland_seat_get_type"
           glib:type-struct="WaylandSeatClass">
      <doc xml:space="preserve"
           filename="gdk/wayland/gdkseat-wayland.c"
           line="70">The Wayland implementation of `GdkSeat`.

Beyond the regular [class@Gdk.Seat] API, the Wayland implementation
provides access to the Wayland `wl_seat` object with
[method@GdkWayland.WaylandSeat.get_wl_seat].</doc>
      <source-position filename="gdk/wayland/gdkwaylandseat.h" line="37"/>
      <method name="get_wl_seat"
              c:identifier="gdk_wayland_seat_get_wl_seat"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdkseat-wayland.c"
             line="4664">Returns the Wayland `wl_seat` of a `GdkSeat`.</doc>
        <source-position filename="gdk/wayland/gdkwaylandseat.h" line="47"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdkseat-wayland.c"
               line="4670">a Wayland `wl_seat`</doc>
          <type name="gpointer" c:type="wl_seat*"/>
        </return-value>
        <parameters>
          <instance-parameter name="seat" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdkseat-wayland.c"
                 line="4666">a `GdkSeat`</doc>
            <type name="WaylandSeat" c:type="GdkSeat*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="WaylandSeatClass"
            c:type="GdkWaylandSeatClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="WaylandSeat">
      <source-position filename="gdk/wayland/gdkwaylandseat.h" line="37"/>
    </record>
    <class name="WaylandSurface"
           c:symbol-prefix="wayland_surface"
           c:type="GdkWaylandSurface"
           parent="Gdk.Surface"
           glib:type-name="GdkWaylandSurface"
           glib:get-type="gdk_wayland_surface_get_type">
      <doc xml:space="preserve"
           filename="gdk/wayland/gdksurface-wayland.c"
           line="61">The Wayland implementation of `GdkSurface`.

Beyond the [class@Gdk.Surface] API, the Wayland implementation offers
access to the Wayland `wl_surface` object with
[method@GdkWayland.WaylandSurface.get_wl_surface].</doc>
      <method name="force_next_commit"
              c:identifier="gdk_wayland_surface_force_next_commit"
              version="4.18">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdksurface-wayland.c"
             line="431">Forces next commit.</doc>
        <source-position filename="gdk/wayland/gdkwaylandsurface.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="surface" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdksurface-wayland.c"
                 line="433">a `GdkSurface`</doc>
            <type name="WaylandSurface" c:type="GdkSurface*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wl_surface"
              c:identifier="gdk_wayland_surface_get_wl_surface"
              introspectable="0">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdksurface-wayland.c"
             line="1403">Returns the Wayland `wl_surface` of a `GdkSurface`.</doc>
        <source-position filename="gdk/wayland/gdkwaylandsurface.h" line="44"/>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdksurface-wayland.c"
               line="1409">a Wayland `wl_surface`</doc>
          <type name="gpointer" c:type="wl_surface*"/>
        </return-value>
        <parameters>
          <instance-parameter name="surface" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdksurface-wayland.c"
                 line="1405">a `GdkSurface`</doc>
            <type name="WaylandSurface" c:type="GdkSurface*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <class name="WaylandToplevel"
           c:symbol-prefix="wayland_toplevel"
           c:type="GdkWaylandToplevel"
           parent="WaylandSurface"
           glib:type-name="GdkWaylandToplevel"
           glib:get-type="gdk_wayland_toplevel_get_type">
      <doc xml:space="preserve"
           filename="gdk/wayland/gdktoplevel-wayland.c"
           line="72">The Wayland implementation of `GdkToplevel`.

Beyond the [iface@Gdk.Toplevel] API, the Wayland implementation
has API to set up cross-process parent-child relationships between
surfaces with [method@GdkWayland.WaylandToplevel.export_handle] and
[method@GdkWayland.WaylandToplevel.set_transient_for_exported].</doc>
      <implements name="Gdk.Toplevel"/>
      <method name="drop_exported_handle"
              c:identifier="gdk_wayland_toplevel_drop_exported_handle"
              version="4.12">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdktoplevel-wayland.c"
             line="2745">Destroy a handle that was obtained with gdk_wayland_toplevel_export_handle().

Note that this API depends on an unstable Wayland protocol,
and thus may require changes in the future.</doc>
        <source-position filename="gdk/wayland/gdkwaylandtoplevel.h"
                         line="59"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toplevel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdktoplevel-wayland.c"
                 line="2747">the `GdkToplevel` that was exported</doc>
            <type name="WaylandToplevel" c:type="GdkToplevel*"/>
          </instance-parameter>
          <parameter name="handle" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdktoplevel-wayland.c"
                 line="2748">the handle to drop</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="export_handle"
              c:identifier="gdk_wayland_toplevel_export_handle">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdktoplevel-wayland.c"
             line="2651">Asynchronously obtains a handle for a surface that can be passed
to other processes.

When the handle has been obtained, @callback will be called.

It is an error to call this function on a surface that is already
exported.

When the handle is no longer needed, [method@GdkWayland.WaylandToplevel.unexport_handle]
should be called to clean up resources.

The main purpose for obtaining a handle is to mark a surface
from another surface as transient for this one, see
[method@GdkWayland.WaylandToplevel.set_transient_for_exported].

Before 4.12, this API could not safely be used multiple times,
since there was no reference counting for handles. Starting with
4.12, every call to this function obtains a new handle, and every
call to [method@GdkWayland.WaylandToplevel.drop_exported_handle] drops
just the handle that it is given.

Note that this API depends on an unstable Wayland protocol,
and thus may require changes in the future.</doc>
        <source-position filename="gdk/wayland/gdkwaylandtoplevel.h"
                         line="50"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdktoplevel-wayland.c"
               line="2682">%TRUE if the handle has been requested, %FALSE if
  an error occurred.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="toplevel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdktoplevel-wayland.c"
                 line="2653">the `GdkToplevel` to obtain a handle for</doc>
            <type name="WaylandToplevel" c:type="GdkToplevel*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdktoplevel-wayland.c"
                 line="2654">callback to call with the handle</doc>
            <type name="WaylandToplevelExported"
                  c:type="GdkWaylandToplevelExported"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdktoplevel-wayland.c"
                 line="2655">user data for @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy_func"
                     transfer-ownership="none"
                     scope="async">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdktoplevel-wayland.c"
                 line="2656">destroy notify for @user_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_application_id"
              c:identifier="gdk_wayland_toplevel_set_application_id">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdktoplevel-wayland.c"
             line="2524">Sets the application id on a `GdkToplevel`.</doc>
        <source-position filename="gdk/wayland/gdkwaylandtoplevel.h"
                         line="67"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toplevel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdktoplevel-wayland.c"
                 line="2526">a `GdkToplevel`</doc>
            <type name="WaylandToplevel" c:type="GdkToplevel*"/>
          </instance-parameter>
          <parameter name="application_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdktoplevel-wayland.c"
                 line="2527">the application id for the @toplevel</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_transient_for_exported"
              c:identifier="gdk_wayland_toplevel_set_transient_for_exported">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdktoplevel-wayland.c"
             line="2793">Marks @toplevel as transient for the surface to which the given
@parent_handle_str refers.

Typically, the handle will originate from a
[method@GdkWayland.WaylandToplevel.export_handle] call in another process.

Note that this API depends on an unstable Wayland protocol,
and thus may require changes in the future.</doc>
        <source-position filename="gdk/wayland/gdkwaylandtoplevel.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdktoplevel-wayland.c"
               line="2807">%TRUE if the surface has been marked as transient,
  %FALSE if an error occurred.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="toplevel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdktoplevel-wayland.c"
                 line="2795">the `GdkToplevel` to make as transient</doc>
            <type name="WaylandToplevel" c:type="GdkToplevel*"/>
          </instance-parameter>
          <parameter name="parent_handle_str" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdktoplevel-wayland.c"
                 line="2796">an exported handle for a surface</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="unexport_handle"
              c:identifier="gdk_wayland_toplevel_unexport_handle"
              deprecated="1"
              deprecated-version="4.12">
        <doc xml:space="preserve"
             filename="gdk/wayland/gdktoplevel-wayland.c"
             line="2705">Destroys the handle that was obtained with
gdk_wayland_toplevel_export_handle().

It is an error to call this function on a surface that
does not have a handle.

Since 4.12, this function does nothing. Use
[method@GdkWayland.WaylandToplevel.drop_exported_handle] instead to drop a
handle that was obtained with [method@GdkWayland.WaylandToplevel.export_handle].

Note that this API depends on an unstable Wayland protocol,
and thus may require changes in the future.</doc>
        <doc-deprecated xml:space="preserve">Use [method@GdkWayland.WaylandToplevel.drop_exported_handle]
  instead, this function does nothing</doc-deprecated>
        <source-position filename="gdk/wayland/gdkwaylandtoplevel.h"
                         line="56"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="toplevel" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gdk/wayland/gdktoplevel-wayland.c"
                 line="2707">the `GdkToplevel` to unexport</doc>
            <type name="WaylandToplevel" c:type="GdkToplevel*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <callback name="WaylandToplevelExported"
              c:type="GdkWaylandToplevelExported">
      <doc xml:space="preserve"
           filename="gdk/wayland/gdktoplevel-wayland.c"
           line="2611">Callback that gets called when the handle for a surface has been
obtained from the Wayland compositor.

This callback is used in [method@GdkWayland.WaylandToplevel.export_handle].

The @handle can be passed to other processes, for the purpose of
marking surfaces as transient for out-of-process surfaces.</doc>
      <source-position filename="gdk/wayland/gdkwaylandtoplevel.h" line="45"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="toplevel" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdktoplevel-wayland.c"
               line="2613">the `GdkToplevel` that is exported</doc>
          <type name="WaylandToplevel" c:type="GdkToplevel*"/>
        </parameter>
        <parameter name="handle" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdktoplevel-wayland.c"
               line="2614">the handle</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <doc xml:space="preserve"
               filename="gdk/wayland/gdktoplevel-wayland.c"
               line="2615">user data that was passed to [method@GdkWayland.WaylandToplevel.export_handle]</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
  </namespace>
</repository>
