shell: Do not use stack-allocated ClutterEvents
All events should be allocated. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1451
This commit is contained in:
parent
a9e5004eab
commit
daa3ddac94
@ -1381,31 +1381,32 @@ shell_global_sync_pointer (ShellGlobal *global)
|
|||||||
{
|
{
|
||||||
int x, y;
|
int x, y;
|
||||||
ClutterModifierType mods;
|
ClutterModifierType mods;
|
||||||
ClutterMotionEvent event;
|
ClutterEvent *event;
|
||||||
ClutterSeat *seat;
|
ClutterSeat *seat;
|
||||||
|
|
||||||
shell_global_get_pointer (global, &x, &y, &mods);
|
shell_global_get_pointer (global, &x, &y, &mods);
|
||||||
|
|
||||||
seat = clutter_backend_get_default_seat (clutter_get_default_backend ());
|
seat = clutter_backend_get_default_seat (clutter_get_default_backend ());
|
||||||
|
event = clutter_event_new (CLUTTER_MOTION);
|
||||||
|
|
||||||
event.type = CLUTTER_MOTION;
|
event->motion.time = shell_global_get_current_time (global);
|
||||||
event.time = shell_global_get_current_time (global);
|
event->motion.flags = CLUTTER_EVENT_FLAG_SYNTHETIC;
|
||||||
event.flags = CLUTTER_EVENT_FLAG_SYNTHETIC;
|
event->motion.stage = global->stage;
|
||||||
event.stage = global->stage;
|
event->motion.x = x;
|
||||||
event.x = x;
|
event->motion.y = y;
|
||||||
event.y = y;
|
event->motion.modifier_state = mods;
|
||||||
event.modifier_state = mods;
|
event->motion.axes = NULL;
|
||||||
event.axes = NULL;
|
clutter_event_set_device (event, clutter_seat_get_pointer (seat));
|
||||||
event.device = clutter_seat_get_pointer (seat);
|
|
||||||
|
|
||||||
/* Leaving event.source NULL will force clutter to look it up, which
|
/* Leaving event.source NULL will force clutter to look it up, which
|
||||||
* will generate enter/leave events as a side effect, if they are
|
* will generate enter/leave events as a side effect, if they are
|
||||||
* needed. We need a better way to do this though... see
|
* needed. We need a better way to do this though... see
|
||||||
* http://bugzilla.clutter-project.org/show_bug.cgi?id=2615.
|
* http://bugzilla.clutter-project.org/show_bug.cgi?id=2615.
|
||||||
*/
|
*/
|
||||||
event.source = NULL;
|
clutter_event_set_source_device (event, NULL);
|
||||||
|
|
||||||
clutter_event_put ((ClutterEvent *)&event);
|
clutter_event_put (event);
|
||||||
|
clutter_event_free (event);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user