---
name: "Tk_HandleEvent"
section: "3tk"
platform: "linux"
package: "tk8.6-doc"
version: "8.6.16-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Tk_HandleEvent/3tk"
---

# Tk\_HandleEvent(3tk)

invoke event handlers for window system events

```

```

## NAME

Tk\_HandleEvent - invoke event handlers for window system events

## SYNOPSIS

```
#include <tk.h>

Tk_HandleEvent(eventPtr)
```

## ARGUMENTS

- XEvent *\*eventPtr* (in)

  Pointer to X event to dispatch to relevant handler(s). It is important that all unused fields of the structure be set to zero.

  ```

  ```

## DESCRIPTION

**Tk\_HandleEvent** is a lower-level procedure that deals with window events.  It is called by **Tcl\_ServiceEvent** (and indirectly by **Tcl\_DoOneEvent**), and in a few other cases within Tk. It makes callbacks to any window event handlers (created by calls to **Tk\_CreateEventHandler**) that match *eventPtr* and then returns.  In some cases it may be useful for an application to bypass the Tk event queue and call **Tk\_HandleEvent** directly instead of calling **Tcl\_QueueEvent** followed by **Tcl\_ServiceEvent**.

This procedure may be invoked recursively.  For example, it is possible to invoke **Tk\_HandleEvent** recursively from a handler called by **Tk\_HandleEvent**.  This sort of operation is useful in some modal situations, such as when a notifier has been popped up and an application wishes to wait for the user to click a button in the notifier before doing anything else.

## KEYWORDS

callback, event, handler, window
