### Method

# GdkWayland WaylandToplevel export_handle

#### Declaration [src]

    gboolean
    gdk_wayland_toplevel_export_handle (
      GdkToplevel* toplevel,
      GdkWaylandToplevelExported callback,
      gpointer user_data,
      GDestroyNotify destroy_func
    )

#### Description [src]

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, `gdk_wayland_toplevel_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 `gdk_wayland_toplevel_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 `gdk_wayland_toplevel_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.

#### Parameters

`callback`

  Type: `GdkWaylandToplevelExported`

  Callback to call with the handle.

`user_data`

  Type: `gpointer`

  User data for `callback`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`destroy_func`

  Type: `GDestroyNotify`

  Destroy notify for `user_data`.

#### Return value

Type: `gboolean`

`TRUE` if the handle has been requested, `FALSE` if an error occurred.