hook moblin plugin into stage reactivity API

This commit is contained in:
Tomas Frydrych 2008-10-16 08:05:50 +01:00
parent ae906b318a
commit 9e4f5a26dd

View File

@ -609,6 +609,15 @@ destroy (MetaCompWindow *mcw)
META_COMPOSITOR_CLUTTER_PLUGIN_DESTROY); META_COMPOSITOR_CLUTTER_PLUGIN_DESTROY);
} }
static void
on_panel_effect_complete (ClutterActor *panel, gpointer data)
{
gboolean reactive = GPOINTER_TO_INT (data);
MetaCompositorClutterPlugin *plugin = get_plugin ();
meta_comp_clutter_plugin_set_stage_reactive (plugin, reactive);
}
static gboolean static gboolean
xevent_filter (XEvent *xev) xevent_filter (XEvent *xev)
{ {
@ -625,10 +634,10 @@ xevent_filter (XEvent *xev)
if (xev->xmotion.y > (gint)height) if (xev->xmotion.y > (gint)height)
{ {
/* TODO -- slide back in, reset input on stage window */
clutter_effect_move (priv->panel_slide_effect, clutter_effect_move (priv->panel_slide_effect,
priv->panel, x, -height, priv->panel, x, -height,
NULL, NULL); on_panel_effect_complete,
GINT_TO_POINTER (FALSE));
} }
return TRUE; return TRUE;
@ -637,10 +646,10 @@ xevent_filter (XEvent *xev)
{ {
gint x = clutter_actor_get_x (priv->panel); gint x = clutter_actor_get_x (priv->panel);
/* TODO -- reset input on stage window */
clutter_effect_move (priv->panel_slide_effect, clutter_effect_move (priv->panel_slide_effect,
priv->panel, x, 0, priv->panel, x, 0,
NULL, NULL); on_panel_effect_complete,
GINT_TO_POINTER (TRUE ));
return TRUE; return TRUE;
} }
@ -739,10 +748,10 @@ stage_input_cb (ClutterActor *stage, ClutterEvent *event, gpointer data)
if (mev->y > (gint)height) if (mev->y > (gint)height)
{ {
/* TODO -- slide back in, reset input on stage window */
clutter_effect_move (priv->panel_slide_effect, clutter_effect_move (priv->panel_slide_effect,
priv->panel, x, -height, priv->panel, x, -height,
NULL, NULL); on_panel_effect_complete,
GINT_TO_POINTER (FALSE));
} }
return TRUE; return TRUE;
@ -751,10 +760,10 @@ stage_input_cb (ClutterActor *stage, ClutterEvent *event, gpointer data)
{ {
gint x = clutter_actor_get_x (priv->panel); gint x = clutter_actor_get_x (priv->panel);
/* TODO -- reset input on stage window */
clutter_effect_move (priv->panel_slide_effect, clutter_effect_move (priv->panel_slide_effect,
priv->panel, x, 0, priv->panel, x, 0,
NULL, NULL); on_panel_effect_complete,
GINT_TO_POINTER (TRUE ));
return TRUE; return TRUE;
} }