### Signal

# Gtk TreeView::move-cursor

#### Declaration

    gboolean
    move_cursor (
      GtkTreeView self,
      GtkMovementStep* step,
      gint direction,
      gboolean extend,
      gboolean modify,
      gpointer user_data
    )

#### Description [src]

The `GtkTreeView`::move-cursor signal is a [keybinding signal][GtkSignalAction] which gets emitted when the user presses one of the cursor keys.

Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control the cursor programmatically. In contrast to gtk_tree_view_set_cursor() and gtk_tree_view_set_cursor_on_cell() when moving horizontally `GtkTreeView`::move-cursor does not reset the current selection.

Default handler: | The default handler is called after the handlers added via `g_signal_connect()`.
The signal can be emitted directly

#### Parameters

`step` | `GtkMovementStep`
| The granularity of the move, as a `GtkMovementStep`. `GTK_MOVEMENT_LOGICAL_POSITIONS`, `GTK_MOVEMENT_VISUAL_POSITIONS`, `GTK_MOVEMENT_DISPLAY_LINES`, `GTK_MOVEMENT_PAGES` and `GTK_MOVEMENT_BUFFER_ENDS` are supported. `GTK_MOVEMENT_LOGICAL_POSITIONS` and `GTK_MOVEMENT_VISUAL_POSITIONS` are treated identically.
| The data is owned by the caller of the function.
`direction` | `gint`
| The direction to move: +1 to move forwards; -1 to move backwards. The resulting movement is undefined for all other values.
`extend` | `gboolean`
| Whether to extend the selection.
`modify` | `gboolean`
| Whether to modify the selection.

#### Return value

Returns: | `gboolean`
| `TRUE` if `step` is supported, `FALSE` otherwise.