st: Clip StEntry to allocation

The default get_paint_volume() implementation will do the union
of children, and the child ClutterText paint volume may expand
beyond StEntry size when text overflows.

We actually want all content to be clipped to the StEntry, so
implement get_paint_volume() and tell it so.
This commit is contained in:
Carlos Garnacho 2018-06-15 14:23:21 +02:00 committed by Georges Basile Stavracas Neto
parent 4bf033a885
commit 86a520b880

View File

@ -905,6 +905,13 @@ st_entry_unmap (ClutterActor *actor)
CLUTTER_ACTOR_CLASS (st_entry_parent_class)->unmap (actor); CLUTTER_ACTOR_CLASS (st_entry_parent_class)->unmap (actor);
} }
static gboolean
st_entry_get_paint_volume (ClutterActor *actor,
ClutterPaintVolume *volume)
{
return clutter_paint_volume_set_from_allocation (volume, actor);
}
static void static void
st_entry_class_init (StEntryClass *klass) st_entry_class_init (StEntryClass *klass)
{ {
@ -922,6 +929,7 @@ st_entry_class_init (StEntryClass *klass)
actor_class->allocate = st_entry_allocate; actor_class->allocate = st_entry_allocate;
actor_class->paint = st_entry_paint; actor_class->paint = st_entry_paint;
actor_class->unmap = st_entry_unmap; actor_class->unmap = st_entry_unmap;
actor_class->get_paint_volume = st_entry_get_paint_volume;
actor_class->key_press_event = st_entry_key_press_event; actor_class->key_press_event = st_entry_key_press_event;
actor_class->key_focus_in = st_entry_key_focus_in; actor_class->key_focus_in = st_entry_key_focus_in;