### Method

# Gtk Widgetkeynav_failed

#### Declaration [src]

    gboolean
    gtk_widget_keynav_failed (
      GtkWidget* widget,
      GtkDirectionType direction
    )

#### Description [src]

Emits the `::keynav-failed` signal on the widget.

This function should be called whenever keyboard navigation within a single widget hits a boundary.

The return value of this function should be interpreted in a way similar to the return value of `gtk_widget_child_focus()`. When `TRUE` is returned, stay in the widget, the failed keyboard navigation is OK and/or there is nowhere we can/should move the focus to. When `FALSE` is returned, the caller should continue with keyboard navigation outside the widget, e.g. by calling `gtk_widget_child_focus()` on the widget’s toplevel.

The default `GtkWidget::keynav-failed` handler returns `FALSE` for `GTK_DIR_TAB_FORWARD` and `GTK_DIR_TAB_BACKWARD`. For the other values of `GtkDirectionType` it returns `TRUE`.

Whenever the default handler returns `TRUE`, it also calls `gtk_widget_error_bell()` to notify the user of the failed keyboard navigation.

A use case for providing an own implementation of ::keynav-failed (either by connecting to it or by overriding it) would be a row of `GtkEntry` widgets where the user should be able to navigate the entire row with the cursor keys, as e.g. known from user interfaces that require entering license keys.

#### Parameters

`direction`

  Type: `GtkDirectionType`

  Direction of focus movement.

#### Return value

Type: `gboolean`

`TRUE` if stopping keyboard navigation is fine, `FALSE` if the emitting widget should try to handle the keyboard navigation attempt in its parent container(s).