clutter: Update ClutterActorClass event vmethods to use ClutterEvent

With the ClutterEvent subtype structs sealed, this remains the only useful
struct type that is now usable on the Javascript side. Make all
ClutterActorClass event vmethods use ClutterEvent, and update all users
to this change.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3163>
This commit is contained in:
Carlos Garnacho 2023-08-09 00:23:28 +02:00 committed by Marge Bot
parent f168866369
commit 1d6d8d45d0
7 changed files with 54 additions and 56 deletions

View File

@ -6963,7 +6963,7 @@ clutter_actor_class_init (ClutterActorClass *klass)
/**
* ClutterActor::button-press-event:
* @actor: the actor which received the event
* @event: (type ClutterButtonEvent): a #ClutterButtonEvent
* @event: (type ClutterEvent): a button [struct@Event]
*
* The signal is emitted each time a mouse button
* is pressed on @actor.
@ -6986,7 +6986,7 @@ clutter_actor_class_init (ClutterActorClass *klass)
/**
* ClutterActor::button-release-event:
* @actor: the actor which received the event
* @event: (type ClutterButtonEvent): a #ClutterButtonEvent
* @event: (type ClutterEvent): a button [struct@Event]
*
* The signal is emitted each time a mouse button
* is released on @actor.
@ -7009,7 +7009,7 @@ clutter_actor_class_init (ClutterActorClass *klass)
/**
* ClutterActor::scroll-event:
* @actor: the actor which received the event
* @event: (type ClutterScrollEvent): a #ClutterScrollEvent
* @event: (type ClutterEvent): a scroll [struct@Event]
*
* The signal is emitted each time the mouse is
* scrolled on @actor
@ -7032,7 +7032,7 @@ clutter_actor_class_init (ClutterActorClass *klass)
/**
* ClutterActor::key-press-event:
* @actor: the actor which received the event
* @event: (type ClutterKeyEvent): a #ClutterKeyEvent
* @event: (type ClutterEvent): a key [struct@Event]
*
* The signal is emitted each time a keyboard button
* is pressed while @actor has key focus (see clutter_stage_set_key_focus()).
@ -7055,7 +7055,7 @@ clutter_actor_class_init (ClutterActorClass *klass)
/**
* ClutterActor::key-release-event:
* @actor: the actor which received the event
* @event: (type ClutterKeyEvent): a #ClutterKeyEvent
* @event: (type ClutterEvent): a key [struct@Event]
*
* The signal is emitted each time a keyboard button
* is released while @actor has key focus (see
@ -7079,7 +7079,7 @@ clutter_actor_class_init (ClutterActorClass *klass)
/**
* ClutterActor::motion-event:
* @actor: the actor which received the event
* @event: (type ClutterMotionEvent): a #ClutterMotionEvent
* @event: (type ClutterEvent): a motion [struct@Event]
*
* The signal is emitted each time the mouse pointer is
* moved over @actor.
@ -7131,7 +7131,7 @@ clutter_actor_class_init (ClutterActorClass *klass)
/**
* ClutterActor::enter-event:
* @actor: the actor which the pointer has entered.
* @event: (type ClutterCrossingEvent): a #ClutterCrossingEvent
* @event: (type ClutterEvent): a crossing [struct@Event]
*
* The signal is emitted when the pointer enters the @actor
*
@ -7154,7 +7154,7 @@ clutter_actor_class_init (ClutterActorClass *klass)
/**
* ClutterActor::leave-event:
* @actor: the actor which the pointer has left
* @event: (type ClutterCrossingEvent): a #ClutterCrossingEvent
* @event: (type ClutterEvent): a crossing [struct@Event]
*
* The signal is emitted when the pointer leaves the @actor.
*

View File

@ -236,21 +236,21 @@ struct _ClutterActorClass
gboolean (* event) (ClutterActor *actor,
ClutterEvent *event);
gboolean (* button_press_event) (ClutterActor *actor,
ClutterButtonEvent *event);
ClutterEvent *event);
gboolean (* button_release_event) (ClutterActor *actor,
ClutterButtonEvent *event);
ClutterEvent *event);
gboolean (* scroll_event) (ClutterActor *actor,
ClutterScrollEvent *event);
ClutterEvent *event);
gboolean (* key_press_event) (ClutterActor *actor,
ClutterKeyEvent *event);
ClutterEvent *event);
gboolean (* key_release_event) (ClutterActor *actor,
ClutterKeyEvent *event);
ClutterEvent *event);
gboolean (* motion_event) (ClutterActor *actor,
ClutterMotionEvent *event);
ClutterEvent *event);
gboolean (* enter_event) (ClutterActor *actor,
ClutterCrossingEvent *event);
ClutterEvent *event);
gboolean (* leave_event) (ClutterActor *actor,
ClutterCrossingEvent *event);
ClutterEvent *event);
gboolean (* captured_event) (ClutterActor *actor,
ClutterEvent *event);
void (* key_focus_in) (ClutterActor *actor);
@ -270,7 +270,7 @@ struct _ClutterActorClass
ClutterPaintNode *root);
gboolean (* touch_event) (ClutterActor *self,
ClutterTouchEvent *event);
ClutterEvent *event);
gboolean (* has_accessible) (ClutterActor *self);
void (* resource_scale_changed) (ClutterActor *self);
float (* calculate_resource_scale) (ClutterActor *self,

View File

@ -69,8 +69,8 @@
* ```
*
* The actor should then override the [signal@Actor::key-press-event] and
* use [method@BindingPool.activate] to match a [struct@KeyEvent] structure
* to one of the actions:
* use [method@BindingPool.activate] to match a [struct@Event] key event
* structure to one of the actions:
*
* ```c
* ClutterBindingPool *pool;

View File

@ -30,8 +30,8 @@
* Action for gesture gestures
*
* #ClutterGestureAction is a sub-class of [class@Action] that implements
* the logic for recognizing gesture gestures. It listens for low level events
* such as [struct@ButtonEvent] and [struct@MotionEvent] on the stage to raise
* the logic for recognizing gesture gestures. It listens for low level
* [struct@Event] events on the stage to raise
* the [signal@GestureAction::gesture-begin], [signal@GestureAction::gesture-progress],
* and [signal@GestureAction::gesture-end] signals.
*

View File

@ -2365,42 +2365,42 @@ clutter_text_release (ClutterActor *actor,
}
static gboolean
clutter_text_button_press (ClutterActor *actor,
ClutterButtonEvent *event)
clutter_text_button_press (ClutterActor *actor,
ClutterEvent *event)
{
return clutter_text_press (actor, (ClutterEvent *) event);
return clutter_text_press (actor, event);
}
static gboolean
clutter_text_motion (ClutterActor *actor,
ClutterMotionEvent *event)
clutter_text_motion (ClutterActor *actor,
ClutterEvent *event)
{
return clutter_text_move (actor, (ClutterEvent *) event);
return clutter_text_move (actor, event);
}
static gboolean
clutter_text_button_release (ClutterActor *actor,
ClutterButtonEvent *event)
clutter_text_button_release (ClutterActor *actor,
ClutterEvent *event)
{
return clutter_text_release (actor, (ClutterEvent *) event);
return clutter_text_release (actor, event);
}
static gboolean
clutter_text_touch_event (ClutterActor *actor,
ClutterTouchEvent *event)
clutter_text_touch_event (ClutterActor *actor,
ClutterEvent *event)
{
switch (clutter_event_type ((ClutterEvent *) event))
switch (clutter_event_type (event))
{
case CLUTTER_TOUCH_BEGIN:
return clutter_text_press (actor, (ClutterEvent *) event);
return clutter_text_press (actor, event);
case CLUTTER_TOUCH_END:
case CLUTTER_TOUCH_CANCEL:
/* TODO: the cancel case probably need a special handler */
return clutter_text_release (actor, (ClutterEvent *) event);
return clutter_text_release (actor, event);
case CLUTTER_TOUCH_UPDATE:
return clutter_text_move (actor, (ClutterEvent *) event);
return clutter_text_move (actor, event);
default:
break;
@ -2424,8 +2424,8 @@ clutter_text_remove_password_hint (gpointer data)
}
static gboolean
clutter_text_key_press (ClutterActor *actor,
ClutterKeyEvent *event)
clutter_text_key_press (ClutterActor *actor,
ClutterEvent *event)
{
ClutterText *self = CLUTTER_TEXT (actor);
ClutterTextPrivate *priv = self->priv;
@ -2445,14 +2445,13 @@ clutter_text_key_press (ClutterActor *actor,
pool = clutter_binding_pool_find (g_type_name (CLUTTER_TYPE_TEXT));
g_assert (pool != NULL);
flags = clutter_event_get_flags ((ClutterEvent *) event);
keyval = clutter_event_get_key_symbol ((ClutterEvent *) event);
modifiers = clutter_event_get_state ((ClutterEvent *) event);
flags = clutter_event_get_flags (event);
keyval = clutter_event_get_key_symbol (event);
modifiers = clutter_event_get_state (event);
if (!(flags & CLUTTER_EVENT_FLAG_INPUT_METHOD) &&
clutter_input_focus_is_focused (priv->input_focus) &&
clutter_input_focus_filter_event (priv->input_focus,
(ClutterEvent *) event))
clutter_input_focus_filter_event (priv->input_focus, event))
return CLUTTER_EVENT_STOP;
/* we allow passing synthetic events that only contain
@ -2479,7 +2478,7 @@ clutter_text_key_press (ClutterActor *actor,
gunichar key_unichar;
/* Skip keys when control is pressed */
key_unichar = clutter_event_get_key_unicode ((ClutterEvent *) event);
key_unichar = clutter_event_get_key_unicode (event);
/* return is reported as CR, but we want LF */
if (key_unichar == '\r')
@ -2514,15 +2513,14 @@ clutter_text_key_press (ClutterActor *actor,
}
static gboolean
clutter_text_key_release (ClutterActor *actor,
ClutterKeyEvent *event)
clutter_text_key_release (ClutterActor *actor,
ClutterEvent *event)
{
ClutterText *self = CLUTTER_TEXT (actor);
ClutterTextPrivate *priv = self->priv;
if (clutter_input_focus_is_focused (priv->input_focus) &&
clutter_input_focus_filter_event (priv->input_focus,
(ClutterEvent *) event))
clutter_input_focus_filter_event (priv->input_focus, event))
return CLUTTER_EVENT_STOP;
return CLUTTER_EVENT_PROPAGATE;

View File

@ -110,8 +110,8 @@ key_group_action_activate (KeyGroup *self,
}
static gboolean
key_group_key_press (ClutterActor *actor,
ClutterKeyEvent *event)
key_group_key_press (ClutterActor *actor,
ClutterEvent *event)
{
ClutterBindingPool *pool;
gboolean res;
@ -120,8 +120,8 @@ key_group_key_press (ClutterActor *actor,
g_assert (pool != NULL);
res = clutter_binding_pool_activate (pool,
clutter_event_get_key_symbol ((ClutterEvent *) event),
clutter_event_get_state ((ClutterEvent *) event),
clutter_event_get_key_symbol (event),
clutter_event_get_state (event),
G_OBJECT (actor));
/* if we activate a key binding, redraw the actor */

View File

@ -130,8 +130,8 @@ key_group_action_activate (KeyGroup *self,
}
static gboolean
key_group_key_press (ClutterActor *actor,
ClutterKeyEvent *event)
key_group_key_press (ClutterActor *actor,
ClutterEvent *event)
{
ClutterBindingPool *pool;
gboolean res;
@ -140,8 +140,8 @@ key_group_key_press (ClutterActor *actor,
g_assert (pool != NULL);
res = clutter_binding_pool_activate (pool,
clutter_event_get_key_symbol ((ClutterEvent *) event),
clutter_event_get_state ((ClutterEvent *) event),
clutter_event_get_key_symbol (event),
clutter_event_get_state (event),
G_OBJECT (actor));
/* if we activate a key binding, redraw the actor */