## GDK Specific Support

GDK Specific Support — GDK specific API

## Synopsis

    void                clutter_gdk_disable_event_retrieval (void);
    ClutterStage *      clutter_gdk_get_stage_from_window   (GdkWindow *window);
    GdkWindow *         clutter_gdk_get_stage_window        (ClutterStage *stage);
    GdkFilterReturn     clutter_gdk_handle_event            (GdkEvent *event);
    void                clutter_gdk_set_display             (GdkDisplay *display);
    GdkDisplay *        clutter_gdk_get_default_display     (void);
    gboolean            clutter_gdk_set_stage_foreign       (ClutterStage *stage,
                                                             GdkWindow *window);

## Description

The GDK backend for Clutter provides some specific API, allowing integration with the GDK API for manipulating the stage window and handling events outside of Clutter.

## Details

### clutter_gdk_disable_event_retrieval ()

    void                clutter_gdk_disable_event_retrieval (void);

Disable the event retrieval in Clutter.

Callers of this function have to set up an event filter using the GDK API, and call `clutter_gdk_handle_event()`.

This function should only be used when embedding Clutter into a GDK based toolkit.

Since 1.10

### clutter_gdk_get_stage_from_window ()

    ClutterStage *      clutter_gdk_get_stage_from_window   (GdkWindow *window);

Gets the stage for a particular X window.

`window` : | a GtkWindow
Returns : | A ClutterStage, or% NULL if a stage does not exist for the window. [transfer none]

Since 1.10

### clutter_gdk_get_stage_window ()

    GdkWindow *         clutter_gdk_get_stage_window        (ClutterStage *stage);

Gets the stages GdkWindow.

`stage` : | a ClutterStage
Returns : | A GdkWindow* for the stage window. [transfer none]

Since 1.10

### clutter_gdk_handle_event ()

    GdkFilterReturn     clutter_gdk_handle_event            (GdkEvent *event);

This function processes a single GDK event; it can be used to hook into external event processing

`event` : | a GdkEvent
Returns : | GdkFilterReturn. `GDK_FILTER_REMOVE` indicates that Clutter has internally handled the event and the caller should do no further processing. `GDK_FILTER_CONTINUE` indicates that Clutter is either not interested in the event, or has used the event to update internal state without taking any exclusive action. `GDK_FILTER_TRANSLATE` will not occur.

### clutter_gdk_set_display ()

    void                clutter_gdk_set_display             (GdkDisplay *display);

Sets the display connection Clutter should use; must be called before `clutter_init()`, `clutter_init_with_args()` or other functions pertaining Clutter's initialization process.

If you are parsing the command line arguments by retrieving Clutter's GOptionGroup with `clutter_get_option_group()` and calling `g_option_context_parse()` yourself, you should also call `clutter_gdk_set_display()` before `g_option_context_parse()`.

`display` : | pointer to a GDK display connection.

Since 0.8

### clutter_gdk_get_default_display ()

    GdkDisplay *        clutter_gdk_get_default_display     (void);

Retrieves the pointer to the default display.

Returns : | the default display. [transfer none]

Since 0.6

### clutter_gdk_set_stage_foreign ()

    gboolean            clutter_gdk_set_stage_foreign       (ClutterStage *stage,
                                                             GdkWindow *window);

Target the ClutterStage to use an existing external GdkWindow

`stage` : | a ClutterStage
`window` : | an existing GdkWindow
Returns : | `TRUE` if foreign window is valid

Since 1.10