diff --git a/src/st/st-clickable.c b/src/st/st-clickable.c index abed5be26..38cc41f47 100644 --- a/src/st/st-clickable.c +++ b/src/st/st-clickable.c @@ -121,7 +121,7 @@ st_clickable_button_press_event (ClutterActor *actor, if (self->priv->held) return TRUE; - if (!_st_actor_contains (actor, event->source)) + if (!clutter_actor_contains (actor, event->source)) return FALSE; self->priv->held = TRUE; @@ -148,7 +148,7 @@ st_clickable_button_release_event (ClutterActor *actor, self->priv->held = FALSE; clutter_ungrab_pointer (); - if (!_st_actor_contains (actor, event->source)) + if (!clutter_actor_contains (actor, event->source)) return FALSE; set_pressed (self, FALSE); diff --git a/src/st/st-entry.c b/src/st/st-entry.c index 7da288608..7c4170cc9 100644 --- a/src/st/st-entry.c +++ b/src/st/st-entry.c @@ -584,7 +584,7 @@ st_entry_enter_event (ClutterActor *actor, { StEntryPrivate *priv = ST_ENTRY_PRIV (actor); - if (_st_actor_contains (actor, event->source) + if (clutter_actor_contains (actor, event->source) && priv->hint && priv->hint_visible) { st_widget_set_hover (ST_WIDGET (actor), TRUE); @@ -597,7 +597,7 @@ static gboolean st_entry_leave_event (ClutterActor *actor, ClutterCrossingEvent *event) { - if (!_st_actor_contains (actor, event->related)) + if (!clutter_actor_contains (actor, event->related)) st_widget_set_hover (ST_WIDGET (actor), FALSE); return CLUTTER_ACTOR_CLASS (st_entry_parent_class)->leave_event (actor, event); diff --git a/src/st/st-private.c b/src/st/st-private.c index 248c703d2..c1614b082 100644 --- a/src/st/st-private.c +++ b/src/st/st-private.c @@ -320,12 +320,3 @@ _st_set_text_from_style (ClutterText *text, clutter_text_set_line_alignment (text, (PangoAlignment) align); } } - -gboolean -_st_actor_contains (ClutterActor *actor, - ClutterActor *child) -{ - while (child != NULL && child != actor) - child = clutter_actor_get_parent (child); - return child != NULL; -} diff --git a/src/st/st-private.h b/src/st/st-private.h index eecd7fdaa..83686659c 100644 --- a/src/st/st-private.h +++ b/src/st/st-private.h @@ -72,7 +72,4 @@ void _st_allocate_fill (StWidget *parent, void _st_set_text_from_style (ClutterText *text, StThemeNode *theme_node); -gboolean _st_actor_contains (ClutterActor *actor, - ClutterActor *child); - #endif /* __ST_PRIVATE_H__ */ diff --git a/src/st/st-widget.c b/src/st/st-widget.c index eb976ac06..d4850a754 100644 --- a/src/st/st-widget.c +++ b/src/st/st-widget.c @@ -568,7 +568,7 @@ st_widget_enter (ClutterActor *actor, if (priv->track_hover) { - if (_st_actor_contains (actor, event->source)) + if (clutter_actor_contains (actor, event->source)) st_widget_set_hover (ST_WIDGET (actor), TRUE); else { @@ -594,7 +594,7 @@ st_widget_leave (ClutterActor *actor, if (priv->track_hover) { - if (!_st_actor_contains (actor, event->related)) + if (!clutter_actor_contains (actor, event->related)) st_widget_set_hover (ST_WIDGET (actor), FALSE); } @@ -1589,7 +1589,10 @@ st_widget_sync_hover (StWidget *widget) pointer = clutter_device_manager_get_core_device (device_manager, CLUTTER_POINTER_DEVICE); pointer_actor = clutter_input_device_get_pointer_actor (pointer); - st_widget_set_hover (widget, _st_actor_contains (CLUTTER_ACTOR (widget), pointer_actor)); + if (pointer_actor) + st_widget_set_hover (widget, clutter_actor_contains (CLUTTER_ACTOR (widget), pointer_actor)); + else + st_widget_set_hover (widget, FALSE); } /**