clutter: Drop default action of Pan action

By default, the pan action performs matrix translations on the
child widget. Nobody wants that (or, nobody wants *just* that).
It's cleaner not to mix mechanism and effect in ClutterGestureAction
subclasses, so drop this base implementation, and change the signal
accumulator so it's more similar to event signals (not that it's
used any longer, anyway).

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2024>
This commit is contained in:
Carlos Garnacho 2021-06-18 16:36:25 +02:00
parent af6fb2a702
commit 0ed9c6e524
2 changed files with 1 additions and 26 deletions

View File

@ -348,25 +348,6 @@ gesture_end (ClutterGestureAction *gesture,
} }
} }
static gboolean
clutter_pan_action_real_pan (ClutterPanAction *self,
ClutterActor *actor,
gboolean is_interpolated)
{
gfloat dx, dy;
graphene_matrix_t transform;
graphene_matrix_t translate;
clutter_pan_action_get_constrained_motion_delta (self, 0, &dx, &dy);
clutter_actor_get_child_transform (actor, &transform);
graphene_matrix_init_translate (&translate,
&GRAPHENE_POINT3D_INIT (dx, dy, 0.0f));
graphene_matrix_multiply (&translate, &transform, &transform);
clutter_actor_set_child_transform (actor, &transform);
return TRUE;
}
static void static void
clutter_pan_action_set_property (GObject *gobject, clutter_pan_action_set_property (GObject *gobject,
guint prop_id, guint prop_id,
@ -483,8 +464,6 @@ clutter_pan_action_class_init (ClutterPanActionClass *klass)
ClutterGestureActionClass *gesture_class = ClutterGestureActionClass *gesture_class =
CLUTTER_GESTURE_ACTION_CLASS (klass); CLUTTER_GESTURE_ACTION_CLASS (klass);
klass->pan = clutter_pan_action_real_pan;
gesture_class->gesture_prepare = gesture_prepare; gesture_class->gesture_prepare = gesture_prepare;
gesture_class->gesture_begin = gesture_begin; gesture_class->gesture_begin = gesture_begin;
gesture_class->gesture_progress = gesture_progress; gesture_class->gesture_progress = gesture_progress;
@ -586,8 +565,7 @@ clutter_pan_action_class_init (ClutterPanActionClass *klass)
g_signal_new (I_("pan"), g_signal_new (I_("pan"),
G_TYPE_FROM_CLASS (klass), G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (ClutterPanActionClass, pan), 0, g_signal_accumulator_true_handled, NULL,
_clutter_boolean_continue_accumulator, NULL,
_clutter_marshal_BOOLEAN__OBJECT_BOOLEAN, _clutter_marshal_BOOLEAN__OBJECT_BOOLEAN,
G_TYPE_BOOLEAN, 2, G_TYPE_BOOLEAN, 2,
CLUTTER_TYPE_ACTOR, CLUTTER_TYPE_ACTOR,

View File

@ -84,9 +84,6 @@ struct _ClutterPanActionClass
ClutterGestureActionClass parent_class; ClutterGestureActionClass parent_class;
/*< public >*/ /*< public >*/
gboolean (* pan) (ClutterPanAction *action,
ClutterActor *actor,
gboolean is_interpolated);
void (* pan_stopped) (ClutterPanAction *action, void (* pan_stopped) (ClutterPanAction *action,
ClutterActor *actor); ClutterActor *actor);