Jonas Ådahl
24083e1e58
stage: Clear update_scheduled
field when update discarded
...
clutter_stage_schedule_update() sets the field `update_scheduled` to
`TRUE` as an optimization to make redundant updates a no-op. This failed
if there was a pending event and if the stage was not yet mapped.
What happened is:
* clutter_stage_schedule_update() is called
- ClutterStage::update_scheduled is set to TRUE
- frame clock scheduled
* frame clock dispatches
- frame is discarded early, no actual stage update happens
* device is created (e.g. virtual device from remote desktop session)
- `device-added` event reaches ClutterStage::event_queue
* stage is shown
- clutter_stage_schedule_update() is called
- ClutterStage::update_scheduled is TRUE
- ClutterStage::event_queue has events in it
- These two conditions means clutter_schedule_update() becomes a
no-op
At this point, no more updates will happen from
clutter_stage_schedule_update().
Fix this by resetting `ClutterStage::update_scheduled` to `FALSE` even
if the frame was discarded due to the stage not yet being mapped.
A test case is added that replicates the above descibed events.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3804
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4152 >
2024-12-05 00:19:12 +00:00
..
2024-11-12 10:01:29 +00:00
2024-08-07 22:46:16 +00:00
2024-10-30 08:32:46 +01:00
2024-03-15 00:07:59 +01:00
2024-08-30 17:24:24 +00:00
2024-03-15 00:07:59 +01:00
2024-08-07 22:46:16 +00:00
2024-08-07 22:46:16 +00:00
2023-08-07 22:24:36 +00:00
2024-06-25 20:48:24 +02:00
2024-01-10 09:32:47 +01:00
2024-01-10 09:32:47 +01:00
2023-08-07 22:24:36 +00:00
2024-08-07 22:46:16 +00:00
2024-12-03 01:17:50 +00:00
2024-08-07 22:46:16 +00:00
2024-06-25 20:48:24 +02:00
2024-01-10 09:19:05 +01:00
2024-01-09 15:23:04 +00:00
2023-08-07 22:24:36 +00:00
2024-09-01 00:13:28 +02:00
2024-10-08 16:00:57 +00:00
2024-01-22 15:02:33 +00:00
2024-01-09 15:23:04 +00:00
2024-01-12 11:40:20 +00:00
2024-01-10 11:31:13 +01:00
2024-01-10 09:19:14 +01:00
2024-01-10 09:19:14 +01:00
2024-02-08 13:32:51 +00:00
2024-02-08 13:32:51 +00:00
2024-10-30 08:32:46 +01:00
2024-01-10 09:28:08 +01:00
2023-12-14 18:12:55 +00:00
2024-08-29 15:26:40 +02:00
2024-08-15 23:58:53 +02:00
2024-01-10 11:52:51 +01:00
2024-10-30 08:32:46 +01:00
2024-06-13 15:25:40 +02:00
2024-10-30 08:32:46 +01:00
2023-08-07 22:24:36 +00:00
2024-08-07 22:46:16 +00:00
2024-01-10 09:34:58 +01:00
2024-07-24 21:33:30 +00:00
2024-10-01 10:55:02 +00:00
2024-07-24 21:33:30 +00:00
2024-10-01 10:55:02 +00:00
2024-10-25 17:30:23 +02:00
2024-10-25 17:30:23 +02:00
2024-10-30 08:32:46 +01:00
2024-06-13 14:45:53 +02:00
2023-08-07 22:24:36 +00:00
2024-01-12 11:40:20 +00:00
2024-01-10 09:16:52 +01:00
2023-08-07 22:24:36 +00:00
2024-01-09 15:23:04 +00:00
2023-08-07 22:24:36 +00:00
2024-10-08 16:00:57 +00:00
2024-10-08 16:00:57 +00:00
2024-10-08 16:00:57 +00:00
2023-11-15 12:00:19 +00:00
2023-11-03 11:27:52 +00:00
2023-08-07 22:24:36 +00:00
2024-10-30 08:32:46 +01:00
2024-08-01 11:06:33 +00:00
2024-10-30 08:32:46 +01:00
2024-01-10 09:31:22 +01:00
2023-11-15 12:00:19 +00:00
2023-08-07 22:24:36 +00:00
2023-08-07 22:24:36 +00:00
2024-08-01 11:06:33 +00:00
2024-01-10 09:16:14 +01:00
2023-11-15 12:00:19 +00:00
2023-08-07 22:24:36 +00:00
2024-11-12 10:01:29 +00:00
2024-03-05 21:47:43 +00:00
2024-09-17 10:07:07 +00:00
2024-03-14 23:09:21 +01:00
2024-06-25 20:48:24 +02:00
2024-01-10 12:55:02 +01:00
2024-01-10 09:30:23 +01:00
2024-01-10 09:30:23 +01:00
2024-06-25 20:48:24 +02:00
2024-02-09 18:03:09 +01:00
2024-10-21 08:47:36 +00:00
2024-08-13 10:09:04 +00:00
2024-01-26 19:03:02 +00:00
2024-02-17 11:58:55 +00:00
2024-01-22 15:39:48 +00:00
2024-08-29 15:26:39 +02:00
2023-11-09 15:07:30 +00:00
2024-03-15 00:08:02 +01:00
2024-03-15 00:07:59 +01:00
2024-02-13 12:36:26 +01:00
2024-02-13 12:36:26 +01:00
2024-06-28 22:49:45 +00:00
2024-08-15 23:58:53 +02:00
2024-01-10 09:28:47 +01:00
2024-10-30 08:32:46 +01:00
2023-08-30 16:46:13 +02:00
2023-08-12 20:13:37 +00:00
2024-01-10 09:30:34 +01:00
2024-01-10 09:30:34 +01:00
2023-12-13 11:20:04 +00:00
2024-01-10 09:37:15 +01:00
2023-12-13 11:20:04 +00:00
2023-12-13 11:20:04 +00:00
2023-08-30 08:48:23 +02:00
2023-12-13 11:20:04 +00:00
2024-10-30 08:32:46 +01:00
2024-01-05 14:22:22 +01:00
2023-11-20 12:10:52 +01:00
2023-08-07 22:24:36 +00:00
2023-11-15 12:00:19 +00:00
2023-08-07 22:24:36 +00:00
2023-08-30 08:48:23 +02:00
2024-11-04 21:18:37 +00:00
2024-06-25 20:48:24 +02:00
2024-06-25 20:48:24 +02:00
2024-01-10 09:29:44 +01:00
2024-01-10 09:23:16 +01:00
2024-01-10 09:23:16 +01:00
2023-08-30 08:48:23 +02:00
2024-01-22 15:02:33 +00:00
2024-01-22 15:02:33 +00:00
2024-06-22 23:53:49 +00:00
2023-11-15 12:00:19 +00:00
2023-08-07 22:24:36 +00:00
2023-08-07 22:24:36 +00:00
2024-02-17 11:58:55 +00:00
2023-11-14 16:28:09 +00:00
2024-01-09 15:23:04 +00:00
2023-11-14 09:57:39 +00:00
2023-12-13 11:20:04 +00:00
2023-11-14 10:27:51 +00:00
2023-08-07 22:24:36 +00:00
2024-10-30 08:32:46 +01:00
2024-10-30 08:32:46 +01:00
2024-03-15 00:05:50 +01:00
2024-08-07 22:46:16 +00:00
2024-11-06 10:51:55 +00:00
2024-09-01 00:13:28 +02:00
2024-07-22 17:36:10 +02:00
2024-01-10 09:27:46 +01:00
2024-07-09 18:51:30 +02:00
2024-07-09 18:51:30 +02:00
2024-07-09 18:51:30 +02:00
2023-12-13 11:20:04 +00:00
2024-01-22 15:02:33 +00:00
2024-01-10 09:29:47 +01:00
2024-12-03 01:17:50 +00:00
2024-12-03 01:17:50 +00:00
2023-12-19 12:44:35 +00:00
2023-12-19 12:44:35 +00:00
2024-06-25 20:48:24 +02:00
2024-01-10 09:20:07 +01:00
2024-08-29 15:26:40 +02:00
2024-08-29 15:26:40 +02:00
2023-08-07 22:24:36 +00:00
2023-11-03 11:27:52 +00:00
2024-06-25 20:48:24 +02:00
2024-08-30 20:03:43 +00:00
2024-07-09 18:56:06 +02:00
2024-10-08 16:00:57 +00:00
2024-01-10 09:22:19 +01:00
2024-01-10 09:22:19 +01:00
2024-06-25 20:48:24 +02:00
2024-01-10 09:20:09 +01:00
2023-08-07 22:24:36 +00:00
2024-09-01 00:13:28 +02:00
2024-09-01 00:13:28 +02:00
2023-12-13 11:20:04 +00:00
2024-08-29 15:26:39 +02:00
2024-08-29 15:26:39 +02:00
2024-11-12 10:01:29 +00:00
2024-11-12 10:01:29 +00:00
2023-11-15 12:00:19 +00:00
2023-08-07 22:24:36 +00:00
2024-01-10 09:19:18 +01:00
2024-01-10 09:19:18 +01:00
2024-08-07 22:46:16 +00:00
2024-08-07 22:46:16 +00:00
2024-08-22 16:45:01 +00:00
2024-08-22 16:45:01 +00:00
2024-08-22 16:45:01 +00:00
2024-08-22 16:45:01 +00:00
2024-12-05 00:19:12 +00:00
2024-08-09 15:51:36 +00:00
2024-12-05 00:19:12 +00:00
2024-08-13 10:09:05 +00:00
2024-10-07 13:06:26 +00:00
2024-10-30 08:32:46 +01:00
2024-12-05 00:19:12 +00:00
2024-09-01 00:13:28 +02:00
2024-01-10 09:21:14 +01:00
2024-01-10 09:21:14 +01:00
2023-11-15 12:00:19 +00:00
2024-01-10 09:20:31 +01:00
2024-08-07 22:46:16 +00:00
2024-10-30 08:32:46 +01:00
2024-01-10 09:21:05 +01:00
2024-01-10 09:21:05 +01:00
2024-11-04 21:18:37 +00:00
2024-06-13 14:45:53 +02:00
2024-08-29 15:26:40 +02:00
2023-08-30 16:46:13 +02:00
2023-12-13 11:20:04 +00:00
2024-10-30 08:32:46 +01:00
2024-01-10 09:11:56 +01:00
2024-01-10 09:15:51 +01:00
2024-01-10 09:15:51 +01:00
2024-05-16 08:00:23 +00:00
2024-01-10 09:15:47 +01:00
2024-07-24 21:33:30 +00:00
2024-01-22 15:02:33 +00:00
2023-12-13 11:20:04 +00:00
2023-08-07 22:24:36 +00:00
2024-01-10 09:11:52 +01:00
2024-01-10 09:11:52 +01:00
2024-08-22 16:45:01 +00:00
2024-06-22 23:53:49 +00:00
2022-12-22 15:13:54 +01:00
2024-10-08 16:00:57 +00:00