mirror of
https://github.com/brl/mutter.git
synced 2025-02-17 05:44:08 +00:00
Ensure that fixed positions always start at 0,0
Fixed positions are defined to be initialized at 0,0 whenever enabled, by setting fixed_position_enabled to true, or by setting just one of x/y. This normally happens in the defaults, but we need to make sure it also happens if a fixed position was once set but then disabled. We do this by always resetting it back to 0,0 when fixed_position_set is unset.
This commit is contained in:
parent
962bcb1222
commit
fd8dcfcc56
@ -9120,6 +9120,20 @@ clutter_actor_set_fixed_position_set (ClutterActor *self,
|
||||
if (self->priv->position_set == (is_set != FALSE))
|
||||
return;
|
||||
|
||||
if (!is_set)
|
||||
{
|
||||
ClutterLayoutInfo *info;
|
||||
|
||||
/* Ensure we set back the default fixed position of 0,0 so that setting
|
||||
just one of x/y always atomically gets 0 for the other */
|
||||
info = _clutter_actor_peek_layout_info (self);
|
||||
if (info != NULL)
|
||||
{
|
||||
info->fixed_pos.x = 0;
|
||||
info->fixed_pos.y = 0;
|
||||
}
|
||||
}
|
||||
|
||||
self->priv->position_set = is_set != FALSE;
|
||||
g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_FIXED_POSITION_SET]);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user