<?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="Gtk" version="4.0"/>
  <package name="gtk4-layer-shell-0"/>
  <c:include name="gtk4-layer-shell.h"/>
  <doc:format name="unknown"/>
  <namespace name="Gtk4LayerShell"
             version="1.0"
             shared-library="libgtk4-layer-shell.so.1.0"
             c:identifier-prefixes="GtkLayerShell"
             c:symbol-prefixes="gtk_layer">
    <enumeration name="Edge" c:type="GtkLayerShellEdge">
      <source-position filename="include/gtk4-layer-shell.h" line="74"/>
      <member name="left" value="0" c:identifier="GTK_LAYER_SHELL_EDGE_LEFT">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="61">The left edge of the screen.</doc>
      </member>
      <member name="right" value="1" c:identifier="GTK_LAYER_SHELL_EDGE_RIGHT">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="62">The right edge of the screen.</doc>
      </member>
      <member name="top" value="2" c:identifier="GTK_LAYER_SHELL_EDGE_TOP">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="63">The top edge of the screen.</doc>
      </member>
      <member name="bottom"
              value="3"
              c:identifier="GTK_LAYER_SHELL_EDGE_BOTTOM">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="64">The bottom edge of the screen.</doc>
      </member>
      <member name="entry_number"
              value="4"
              c:identifier="GTK_LAYER_SHELL_EDGE_ENTRY_NUMBER">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="65">Should not be used except to get the number of entries. (NOTE: may change in
future releases as more entries are added)</doc>
      </member>
    </enumeration>
    <enumeration name="KeyboardMode" c:type="GtkLayerShellKeyboardMode">
      <source-position filename="include/gtk4-layer-shell.h" line="90"/>
      <member name="none"
              value="0"
              c:identifier="GTK_LAYER_SHELL_KEYBOARD_MODE_NONE">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="78">This window should not receive keyboard events.</doc>
      </member>
      <member name="exclusive"
              value="1"
              c:identifier="GTK_LAYER_SHELL_KEYBOARD_MODE_EXCLUSIVE">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="79">This window should have exclusive focus if it is on the top or overlay layer.</doc>
      </member>
      <member name="on_demand"
              value="2"
              c:identifier="GTK_LAYER_SHELL_KEYBOARD_MODE_ON_DEMAND">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="80">The user should be able to focus and unfocues this window in an implementation
defined way. Not supported for protocol version &lt; 4.</doc>
      </member>
      <member name="entry_number"
              value="3"
              c:identifier="GTK_LAYER_SHELL_KEYBOARD_MODE_ENTRY_NUMBER">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="82">Should not be used except to get the number of entries. (NOTE: may change in
future releases as more entries are added)</doc>
      </member>
    </enumeration>
    <enumeration name="Layer" c:type="GtkLayerShellLayer">
      <source-position filename="include/gtk4-layer-shell.h" line="57"/>
      <member name="background"
              value="0"
              c:identifier="GTK_LAYER_SHELL_LAYER_BACKGROUND">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="44">The background layer.</doc>
      </member>
      <member name="bottom"
              value="1"
              c:identifier="GTK_LAYER_SHELL_LAYER_BOTTOM">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="45">The bottom layer.</doc>
      </member>
      <member name="top" value="2" c:identifier="GTK_LAYER_SHELL_LAYER_TOP">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="46">The top layer.</doc>
      </member>
      <member name="overlay"
              value="3"
              c:identifier="GTK_LAYER_SHELL_LAYER_OVERLAY">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="47">The overlay layer.</doc>
      </member>
      <member name="entry_number"
              value="4"
              c:identifier="GTK_LAYER_SHELL_LAYER_ENTRY_NUMBER">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="48">Should not be used except to get the number of entries. (NOTE: may change in
future releases as more entries are added)</doc>
      </member>
    </enumeration>
    <function name="auto_exclusive_zone_enable"
              c:identifier="gtk_layer_auto_exclusive_zone_enable">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="297">When auto exclusive zone is enabled, exclusive zone is automatically set to the
size of the @window + relevant margin. To disable auto exclusive zone, just set the
exclusive zone to 0 or any other fixed value.

NOTE: you can control the auto exclusive zone by changing the margin on the non-anchored
edge. This behavior is specific to gtk4-layer-shell and not part of the underlying protocol</doc>
      <source-position filename="include/gtk4-layer-shell.h" line="308"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="299">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="auto_exclusive_zone_is_enabled"
              c:identifier="gtk_layer_auto_exclusive_zone_is_enabled">
      <source-position filename="include/gtk4-layer-shell.h" line="316"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="314">if the surface's exclusive zone is set to change based on the window's size</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="312">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_anchor" c:identifier="gtk_layer_get_anchor">
      <source-position filename="include/gtk4-layer-shell.h" line="251"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="249">if this surface is anchored to the given edge.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="246">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="edge" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="247">the edge to which the surface may or may not be anchored</doc>
          <type name="Edge" c:type="GtkLayerShellEdge"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_exclusive_zone"
              c:identifier="gtk_layer_get_exclusive_zone">
      <source-position filename="include/gtk4-layer-shell.h" line="295"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="293">the window's exclusive zone(which may have been set manually or automatically)</doc>
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="291">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_keyboard_mode"
              c:identifier="gtk_layer_get_keyboard_mode">
      <source-position filename="include/gtk4-layer-shell.h" line="337"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="335">current keyboard interactivity mode for @window.</doc>
        <type name="KeyboardMode" c:type="GtkLayerShellKeyboardMode"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="333">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_layer" c:identifier="gtk_layer_get_layer">
      <source-position filename="include/gtk4-layer-shell.h" line="205"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="203">the current layer.</doc>
        <type name="Layer" c:type="GtkLayerShellLayer"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="201">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_major_version"
              c:identifier="gtk_layer_get_major_version">
      <source-position filename="include/gtk4-layer-shell.h" line="97"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="95">the major version number of the GTK Layer Shell library</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="get_margin" c:identifier="gtk_layer_get_margin">
      <source-position filename="include/gtk4-layer-shell.h" line="273"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="271">the size of the margin for the given edge.</doc>
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="268">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="edge" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="269">the margin edge to get</doc>
          <type name="Edge" c:type="GtkLayerShellEdge"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_micro_version"
              c:identifier="gtk_layer_get_micro_version">
      <source-position filename="include/gtk4-layer-shell.h" line="111"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="109">the micro/patch version number of the GTK Layer Shell library</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="get_minor_version"
              c:identifier="gtk_layer_get_minor_version">
      <source-position filename="include/gtk4-layer-shell.h" line="104"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="102">the minor version number of the GTK Layer Shell library</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="get_monitor" c:identifier="gtk_layer_get_monitor">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="219">NOTE: To get which monitor the surface is actually on, use
gdk_display_get_monitor_at_surface().</doc>
      <source-position filename="include/gtk4-layer-shell.h" line="228"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="226">the monitor this surface will/has requested to be on.</doc>
        <type name="Gdk.Monitor" c:type="GdkMonitor*"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="221">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_namespace" c:identifier="gtk_layer_get_namespace">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="174">NOTE: this function does not return ownership of the string. Do not free the returned string.
Future calls into the library may invalidate the returned string.</doc>
      <source-position filename="include/gtk4-layer-shell.h" line="184"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="181">a reference to the namespace property. If namespace is unset, returns the
default namespace("gtk4-layer-shell"). Never returns %NULL.</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="176">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_protocol_version"
              c:identifier="gtk_layer_get_protocol_version">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="123">May block for a Wayland roundtrip the first time it's called.</doc>
      <source-position filename="include/gtk4-layer-shell.h" line="131"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="128">version of the zwlr_layer_shell_v1 protocol supported by the
compositor or 0 if the protocol is not supported.</doc>
        <type name="guint" c:type="guint"/>
      </return-value>
    </function>
    <function name="get_respect_close"
              c:identifier="gtk_layer_get_respect_close"
              version="1.3">
      <source-position filename="include/gtk4-layer-shell.h" line="363"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="359">if the respect_close behavior is enabled, see gtk_layer_set_respect_close()</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="357">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_zwlr_layer_surface_v1"
              c:identifier="gtk_layer_get_zwlr_layer_surface_v1">
      <source-position filename="include/gtk4-layer-shell.h" line="156"/>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="154">The underlying layer surface Wayland object</doc>
        <type name="gpointer" c:type="zwlr_layer_surface_v1*"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="152">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="gtk4-layer-shell">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="6">[Layer Shell](https://wayland.app/protocols/wlr-layer-shell-unstable-v1)
is a Wayland protocol for desktop shell components,
such as panels, notifications and wallpapers. You can use it to anchor
your windows to a corner or edge of the output, or stretch them across
the entire output. This library aims to support all Layer Shell features,
and supports GTK popups and popovers.

This library only functions on Wayland compositors that the support Layer Shell.
__It does not work on X11 or GNOME on Wayland.__

# Note On Linking
If you link against libwayland you must link this library before libwayland. See
[linking.md](https://github.com/wmww/gtk4-layer-shell/blob/main/linking.md) for details.

# Setting Window Size
If you wish to force your layer surface window to be a different size than it
is by default:
|[&lt;!-- language="C" --&gt;
  gtk_window_set_default_size(layer_gtk_window, width, height);
]|
If width or height is 0, the default is used for that axis. If the window is
anchored to opposite edges of the output(see gtk_layer_set_anchor()), the
size requested here is ignored. If you later wish to use the default window size
repeat the call with both width and height as 0. Setting to 1, 1 is sometimes useful
to keep the window the smallest it can be while still fitting its contents.</doc>
    </docsection>
    <function name="init_for_window" c:identifier="gtk_layer_init_for_window">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="133">Set the @window up to be a layer surface once it is mapped. this must be called before
the @window is realized.</doc>
      <source-position filename="include/gtk4-layer-shell.h" line="140"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="135">A #GtkWindow to be turned into a layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="is_layer_window" c:identifier="gtk_layer_is_layer_window">
      <source-position filename="include/gtk4-layer-shell.h" line="148"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="146">if @window has been initialized as a layer surface.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="144">A #GtkWindow that may or may not have a layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="is_supported" c:identifier="gtk_layer_is_supported">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="113">May block for a Wayland roundtrip the first time it's called.</doc>
      <source-position filename="include/gtk4-layer-shell.h" line="121"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="include/gtk4-layer-shell.h"
             line="118">%TRUE if the platform is Wayland and Wayland compositor supports the
zwlr_layer_shell_v1 protocol.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
    </function>
    <function name="set_anchor" c:identifier="gtk_layer_set_anchor">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="230">Set whether @window should be anchored to @edge.
- If two perpendicular edges are anchored, the surface with be anchored to that corner
- If two opposite edges are anchored, the window will be stretched across the screen in that direction

Default is %FALSE for each #GtkLayerShellEdge</doc>
      <source-position filename="include/gtk4-layer-shell.h" line="242"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="232">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="edge" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="233">A #GtkLayerShellEdge this layer surface may be anchored to.</doc>
          <type name="Edge" c:type="GtkLayerShellEdge"/>
        </parameter>
        <parameter name="anchor_to_edge" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="234">Whether or not to anchor this layer surface to @edge.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_exclusive_zone"
              c:identifier="gtk_layer_set_exclusive_zone">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="275">Has no effect unless the surface is anchored to an edge. Requests that the compositor
does not place other surfaces within the given exclusive zone of the anchored edge.
For example, a panel can request to not be covered by maximized windows. See
wlr-layer-shell-unstable-v1.xml for details.

Default is 0</doc>
      <source-position filename="include/gtk4-layer-shell.h" line="287"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="277">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="exclusive_zone" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="278">The size of the exclusive zone.</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_keyboard_mode"
              c:identifier="gtk_layer_set_keyboard_mode">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="318">Sets if/when @window should receive keyboard events from the compositor, see
GtkLayerShellKeyboardMode for details. To control mouse/touch interactivity use input regions,
see [#61](https://github.com/wmww/gtk4-layer-shell/issues/61) for details.

Default is %GTK_LAYER_SHELL_KEYBOARD_MODE_NONE</doc>
      <source-position filename="include/gtk4-layer-shell.h" line="329"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="320">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="mode" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="321">The type of keyboard interactivity requested.</doc>
          <type name="KeyboardMode" c:type="GtkLayerShellKeyboardMode"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_layer" c:identifier="gtk_layer_set_layer">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="186">Set the "layer" on which the surface appears(controls if it is over top of or below other surfaces). The layer may
be changed on-the-fly in the current version of the layer shell protocol, but on compositors that only support an
older version the @window is remapped so the change can take effect.

Default is %GTK_LAYER_SHELL_LAYER_TOP</doc>
      <source-position filename="include/gtk4-layer-shell.h" line="197"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="188">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="layer" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="189">The layer on which this surface appears.</doc>
          <type name="Layer" c:type="GtkLayerShellLayer"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_margin" c:identifier="gtk_layer_set_margin">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="253">Set the margin for a specific @edge of a @window. Effects both surface's distance from
the edge and its exclusive zone size(if auto exclusive zone enabled).

Default is 0 for each #GtkLayerShellEdge</doc>
      <source-position filename="include/gtk4-layer-shell.h" line="264"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="255">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="edge" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="256">The #GtkLayerShellEdge for which to set the margin.</doc>
          <type name="Edge" c:type="GtkLayerShellEdge"/>
        </parameter>
        <parameter name="margin_size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="257">The margin for @edge to be set.</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_monitor" c:identifier="gtk_layer_set_monitor">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="207">Set the output for the window to be placed on, or %NULL to let the compositor choose.
If the window is currently mapped, it will get remapped so the change can take effect.

Default is %NULL</doc>
      <source-position filename="include/gtk4-layer-shell.h" line="217"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="209">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="monitor"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="210">The output this layer surface will be placed on (%NULL to let the compositor decide).</doc>
          <type name="Gdk.Monitor" c:type="GdkMonitor*"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_namespace" c:identifier="gtk_layer_set_namespace">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="158">Set the "namespace" of the surface.

No one is quite sure what this is for, but it probably should be something generic
("panel", "osk", etc). The @name_space string is copied, and caller maintains
ownership of original. If the window is currently mapped, it will get remapped so
the change can take effect.

Default is "gtk4-layer-shell" (which will be used if set to %NULL)</doc>
      <source-position filename="include/gtk4-layer-shell.h" line="172"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="160">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="name_space"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="161">The namespace of this layer surface.</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_respect_close"
              c:identifier="gtk_layer_set_respect_close"
              version="1.3">
      <doc xml:space="preserve"
           filename="include/gtk4-layer-shell.h"
           line="339">Compositors may send the `zwlr_layer_surface_v1.closed` event in some cases (such as
when an output is destroyed). Prior to v1.3 this always triggered a GTK `close-request`
signal, which would destroy the window if not intercepted by application code. In v1.3+
this behavior is disabled by default, and can be turned back on by calling this
function with %TRUE. To handle the `.closed` event without destroying your window
turn respect_close on and connect a `close-request` listener that returns %TRUE.</doc>
      <source-position filename="include/gtk4-layer-shell.h" line="353"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="341">A layer surface.</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="respect_close" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="include/gtk4-layer-shell.h"
               line="342">If to forward the .closed event to GTK.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
