### Function

# GObject signal_handlers_disconnect_matched

#### Declaration [src]

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

#### Description [src]

Disconnects all handlers on an instance that match a certain selection criteria.

The criteria mask is passed as a combination of `GSignalMatchType` flags, and the criteria values are passed as arguments. A handler must match on all flags set in `mask` to be disconnected (i.e. the match is conjunctive).

Passing at least one of the `G_SIGNAL_MATCH_ID`, `G_SIGNAL_MATCH_CLOSURE`, `G_SIGNAL_MATCH_FUNC` or `G_SIGNAL_MATCH_DATA` match flags is required for successful matches. If no handlers were found, 0 is returned, the number of disconnected handlers otherwise.

Support for `G_SIGNAL_MATCH_ID` was added in GLib 2.78.

#### Parameters

`instance`

  Type: `GObject`

  The instance to remove handlers from.

  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 handlers have to match.

`signal_id`

  Type: `guint`

  Signal the handlers have to be connected to.

`detail`

  Type: `GQuark`

  Signal detail the handlers have to be connected to.

`closure`

  Type: `GClosure`

  The closure the handlers 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 handlers (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 handlers’ closures.

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

#### Return value

Type: `guint`

The number of handlers that matched.