### Virtual Method

# Gtk Widget keynav_failed

#### Declaration [src]

    gboolean
    keynav_failed (
      GtkWidget* widget,
      GtkDirectionType direction
    )

#### Description [src]

Emits the `GtkWidget::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 widget.