## GDK Specific Support GDK Specific Support — GDK specific API |

## Functions

void | clutter_gdk_disable_event_retrieval ()
ClutterStage * | clutter_gdk_get_stage_from_window ()
GdkWindow * | clutter_gdk_get_stage_window ()
GdkFilterReturn | clutter_gdk_handle_event ()
void | clutter_gdk_set_display ()
GdkDisplay * | clutter_gdk_get_default_display ()
gboolean | clutter_gdk_set_stage_foreign ()
GdkVisual * | clutter_gdk_get_visual ()

## 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.

## Functions

### 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.

#### Parameters

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.

#### Parameters

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

#### Parameters

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()`.

#### Parameters

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

#### Parameters

stage | a ClutterStage |
window | an existing GdkWindow |

#### Returns

`TRUE` if foreign window is valid

Since: 1.10

### clutter_gdk_get_visual ()

    GdkVisual *
    clutter_gdk_get_visual (void);

Retrieves the GdkVisual used by Clutter.

This function should be used when embedding Clutter inside GDK-based foreign toolkits, to ensure that the visual applied to the GdkWindow used to render the ClutterStage is the correct one.

#### Returns

a GdkVisual instance.

[transfer none]

Since: 1.22

## Types and Values