static void clutter_stage_window_iface_init (ClutterStageWindowIface *iface);
static void clutter_event_translator_iface_init (ClutterEventTranslatorIface *iface);
+static ClutterStageCogl *clutter_x11_get_stage_window_from_window (Window win);
+
static GHashTable *clutter_stages_by_xid = NULL;
#define clutter_stage_x11_get_type _clutter_stage_x11_get_type
gpointer native,
ClutterEvent *event)
{
- ClutterStageX11 *stage_x11 = CLUTTER_STAGE_X11 (translator);
- ClutterStageCogl *stage_cogl = CLUTTER_STAGE_COGL (translator);
+ ClutterStageX11 *stage_x11;
+ ClutterStageCogl *stage_cogl;
ClutterTranslateReturn res = CLUTTER_TRANSLATE_CONTINUE;
- ClutterBackendX11 *backend_x11 = CLUTTER_BACKEND_X11 (stage_cogl->backend);
- Window stage_xwindow = stage_x11->xwin;
+ ClutterBackendX11 *backend_x11;
+ Window stage_xwindow;
XEvent *xevent = native;
ClutterStage *stage;
- stage = clutter_x11_get_stage_from_window (xevent->xany.window);
- if (stage == NULL)
+ stage_cogl = clutter_x11_get_stage_window_from_window (xevent->xany.window);
+ if (stage_cogl == NULL)
return CLUTTER_TRANSLATE_CONTINUE;
+ stage = stage_cogl->wrapper;
+ stage_x11 = CLUTTER_STAGE_X11 (stage_cogl);
+ backend_x11 = CLUTTER_BACKEND_X11 (stage_cogl->backend);
+ stage_xwindow = stage_x11->xwin;
+
switch (xevent->type)
{
case ConfigureNotify:
return CLUTTER_STAGE_X11 (impl)->xwin;
}
+static ClutterStageCogl *
+clutter_x11_get_stage_window_from_window (Window win)
+{
+ if (clutter_stages_by_xid == NULL)
+ return NULL;
+
+ return g_hash_table_lookup (clutter_stages_by_xid,
+ GINT_TO_POINTER (win));
+}
+
/**
* clutter_x11_get_stage_from_window:
* @win: an X Window ID
*
- * Gets the stage for a particular X window.
+ * Gets the stage for a particular X window.
*
* Return value: (transfer none): A #ClutterStage, or% NULL if a stage
* does not exist for the window
{
ClutterStageCogl *stage_cogl;
- if (clutter_stages_by_xid == NULL)
- return NULL;
-
- stage_cogl = g_hash_table_lookup (clutter_stages_by_xid,
- GINT_TO_POINTER (win));
+ stage_cogl = clutter_x11_get_stage_window_from_window (win);
if (stage_cogl != NULL)
return stage_cogl->wrapper;