### Function

# GObject signal_handler_find

since: 2.0

#### Declaration

    gulong
    g_signal_handler_find (
      GObject* instance,
      GSignalMatchType mask,
      guint signal_id,
      GQuark detail,
      GClosure* closure,
      gpointer func,
      gpointer data
    )

#### Description

Finds the first signal handler that matches certain selection criteria. The criteria mask is passed as an OR-ed combination of `GSignalMatchType` flags, and the criteria values are passed as arguments. The match `mask` has to be non-0 for successful matches. If no handler was found, 0 is returned.

Available since: 2.0

#### Parameters

`instance`

  Type: `GObject`

  The instance owning the signal handler to be found.

  The data is owned by the caller of the function.

`mask`

  Type: `GSignalMatchType`

  Mask indicating which of `signal_id`, `detail`, `closure`, `func` and/or `data` the handler has to match.

`signal_id`

  Type: `guint`

  Signal the handler has to be connected to.

`detail`

  Type: `GQuark`

  Signal detail the handler has to be connected to.

`closure`

  Type: `GClosure`

  The closure the handler will invoke.

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

`func`

  Type: `gpointer`

  The C closure callback of the handler (useless for non-C closures).

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

`data`

  Type: `gpointer`

  The closure data of the handler’s closure.

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

#### Return value

Type: `gulong`

A valid non-0 signal handler id for a successful match.