static MxFocusable *
_accept_focus (MxFocusable *focusable,
               MxFocusHint  hint)
{
  MexActionButtonPrivate *priv = MEX_ACTION_BUTTON (focusable)->priv;
  MxFocusableIface *iface;

  priv->has_focus = TRUE;

  clutter_actor_meta_set_enabled (CLUTTER_ACTOR_META (priv->shadow), TRUE);

  iface = g_type_interface_peek_parent (MX_FOCUSABLE_GET_INTERFACE (focusable));
  return iface->accept_focus (focusable, hint);
}
static MxFocusable *
_accept_focus (MxFocusable *focusable,
               MxFocusHint  hint)
{
    MexActionButtonPrivate *priv = MEX_ACTION_BUTTON (focusable)->priv;
    MxFocusableIface *iface;
    ClutterColor shadow_color = {0, 0, 0, 64};

    priv->has_focus = TRUE;

    priv->shadow = mex_shadow_new (CLUTTER_ACTOR (focusable));
    mex_shadow_set_radius_x (priv->shadow, 15);
    mex_shadow_set_radius_y (priv->shadow, 15);
    mex_shadow_set_color (priv->shadow, &shadow_color);

    iface = g_type_interface_peek_parent (MX_FOCUSABLE_GET_INTERFACE (focusable));
    return iface->accept_focus (focusable, hint);
}