stage: Maintain the motion event delivery invariants
It is possible, by calling clutter_set_motion_events_enabled() prior to the creation of any stage, to control the per-actor motion event delivery flag on each newly created stage. Since we deprecated the global accessor functions in favour of the per-Stage ones, we need to remove the call to clutter_get_motion_events_enabled() inside the ClutterStage instance initialization, and replace it with an internal function. This code will go away when we can finally break API and remove the deprecated functions.
This commit is contained in:
parent
b6eb5728e1
commit
d5ea422c8f
@ -303,9 +303,7 @@ clutter_set_motion_events_enabled (gboolean enable)
|
||||
gboolean
|
||||
clutter_get_motion_events_enabled (void)
|
||||
{
|
||||
ClutterMainContext *context = _clutter_context_get_default ();
|
||||
|
||||
return context->motion_events_per_actor;
|
||||
return _clutter_context_get_motion_events_enabled ();
|
||||
}
|
||||
|
||||
ClutterActor *
|
||||
@ -3099,3 +3097,11 @@ _clutter_context_pop_shader_stack (ClutterActor *actor)
|
||||
|
||||
return _clutter_context_peek_shader_stack ();
|
||||
}
|
||||
|
||||
gboolean
|
||||
_clutter_context_get_motion_events_enabled (void)
|
||||
{
|
||||
ClutterMainContext *context = _clutter_context_get_default ();
|
||||
|
||||
return context->motion_events_per_actor;
|
||||
}
|
||||
|
@ -188,6 +188,7 @@ ClutterActor * _clutter_context_pop_shader_stack (ClutterActor *a
|
||||
ClutterActor * _clutter_context_peek_shader_stack (void);
|
||||
guint32 _clutter_context_acquire_id (gpointer key);
|
||||
void _clutter_context_release_id (guint32 id_);
|
||||
gboolean _clutter_context_get_motion_events_enabled (void);
|
||||
|
||||
const gchar *_clutter_gettext (const gchar *str);
|
||||
|
||||
|
@ -1998,7 +1998,14 @@ clutter_stage_init (ClutterStage *self)
|
||||
priv->use_fog = FALSE;
|
||||
priv->throttle_motion_events = TRUE;
|
||||
priv->min_size_changed = FALSE;
|
||||
priv->motion_events_enabled = clutter_get_motion_events_enabled ();
|
||||
|
||||
/* XXX - we need to keep the invariant that calling
|
||||
* clutter_set_motion_event_enabled() before the stage creation
|
||||
* will cause motion event delivery to be disabled on any newly
|
||||
* created stage. this can go away when we break API and remove
|
||||
* deprecated functions.
|
||||
*/
|
||||
priv->motion_events_enabled = _clutter_context_get_motion_events_enabled ();
|
||||
|
||||
priv->color = default_stage_color;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user