Campbell Barton
648417bfff
GHOST/Wayland: improve internal fractional scaling behavior
...
Logic for the recently included fractional scaling support [0] was
difficult to reason about as it depended on two different callbacks
one that listened to a preferred scale, another that tracked which
physical displays the window overlapped.
Checking if fractional scaling was in used depended on the order
the callbacks ran - which is undefined.
In practice - mixing non-fractional and fractional displays would
flicker when the window was moved between monitors.
Resolve this problem with the following changes:
- When the fractional-scale manager is supported,
only respond to the scale from it's preferred_scale callback.
- When no fractional-scale manager is available,
set the scale based on the scale of overlapping outputs.
- Add support for postponing the buffers commit call to prevent
flickering when changing the windows scale.
Other changes:
- Use a lock before setting the pending frame state from
wp_fractional_scale_handle_preferred_scale.
- Ensure pending actions that themselves trigger pending actions
run in the time gwl_window_pending_actions_handle is called.
- Rename GWL_Window::scale -> GWL_WindowFrame::buffer_scale.
[0]: cde99075e8
2023-04-04 17:35:42 +10:00
..
2023-03-29 16:50:54 +02:00
2022-06-27 20:36:40 +10:00
2023-03-27 11:01:20 +11:00
2022-06-17 17:18:06 +10:00
2023-03-29 16:50:54 +02:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2022-11-23 10:21:17 +09:00
2022-02-11 09:14:36 +11:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2023-03-28 10:45:44 +02:00
2023-03-14 12:51:37 +11:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2022-10-23 17:41:04 +11:00
2023-03-29 16:50:54 +02:00
2023-03-28 15:57:48 +11:00
2022-02-11 09:14:36 +11:00
2023-03-29 16:50:54 +02:00
2022-08-17 12:54:46 +02:00
2022-09-25 20:17:08 +10:00
2022-02-11 09:14:36 +11:00
2023-03-29 16:50:54 +02:00
2022-02-11 09:14:36 +11:00
2022-09-25 20:17:08 +10:00
2022-02-11 09:14:36 +11:00
2023-03-29 16:50:54 +02:00
2022-09-07 15:14:49 +10:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2022-08-12 11:04:21 +10:00
2022-06-27 20:36:40 +10:00
2022-02-11 09:14:36 +11:00
2022-02-11 09:14:36 +11:00
2022-07-14 21:54:28 +10:00
2023-03-29 16:50:54 +02:00
2022-02-11 09:14:36 +11:00
2022-02-11 09:14:36 +11:00
2022-09-25 22:31:31 +10:00
2022-02-11 09:14:36 +11:00
2022-02-11 09:14:36 +11:00
2022-02-11 09:14:36 +11:00
2022-02-11 09:14:36 +11:00
2022-02-11 09:14:36 +11:00
2023-03-29 16:50:54 +02:00
2022-11-02 10:18:19 +11:00
2022-10-23 14:07:22 +11:00
2022-05-29 13:25:58 +10:00
2022-08-15 16:47:20 +02:00
2023-03-29 16:50:54 +02:00
2022-09-19 14:52:27 +10:00
2023-02-12 14:56:05 +11:00
2023-03-29 16:50:54 +02:00
2022-02-11 09:14:36 +11:00
2022-02-11 09:14:36 +11:00
2023-03-10 13:12:27 +11:00
2022-10-19 13:53:20 +11:00
2022-08-27 11:24:49 +10:00
2022-02-11 09:14:36 +11:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2022-02-11 09:14:36 +11:00
2023-03-27 11:01:20 +11:00
2023-03-28 15:57:48 +11:00
2023-03-27 11:01:20 +11:00
2023-03-29 16:50:54 +02:00
2023-03-27 11:01:20 +11:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2023-03-30 10:51:59 +02:00
2022-02-11 09:14:36 +11:00
2023-03-28 15:57:48 +11:00
2023-03-28 15:57:48 +11:00
2023-04-04 17:26:37 +10:00
2023-04-04 17:26:37 +10:00
2023-03-27 11:01:20 +11:00
2023-03-27 11:01:20 +11:00
2023-03-27 12:08:14 +11:00
2023-03-28 15:57:48 +11:00
2022-02-11 09:14:36 +11:00
2022-05-29 13:25:58 +10:00
2022-02-11 09:14:36 +11:00
2023-03-29 16:50:54 +02:00
2022-08-12 11:04:21 +10:00
2022-05-29 13:25:58 +10:00
2023-03-07 21:39:44 -03:00
2022-05-06 00:40:27 -07:00
2022-02-11 09:14:36 +11:00
2022-07-08 19:36:31 +10:00
2022-09-23 15:28:48 +10:00
2022-06-27 16:49:21 +10:00
2022-06-24 10:22:46 +10:00
2023-02-26 11:55:22 +13:00
2023-03-28 15:57:48 +11:00
2022-02-11 09:14:36 +11:00
2023-01-12 08:48:48 +01:00
2022-07-11 10:38:02 +10:00
2023-03-28 15:57:48 +11:00
2022-08-17 12:54:46 +02:00
2022-09-26 10:52:52 +10:00
2023-03-28 15:57:48 +11:00
2022-09-16 18:14:33 +10:00
2023-04-04 17:35:42 +10:00
2023-03-31 13:03:50 +11:00
2023-03-07 21:39:44 -03:00
2023-02-21 15:45:45 -08:00
2023-02-28 05:36:06 +01:00
2023-03-28 15:57:48 +11:00
2022-09-26 10:52:52 +10:00
2022-06-27 20:36:40 +10:00
2022-02-11 09:14:36 +11:00
2022-08-15 16:47:20 +02:00
2022-02-11 09:14:36 +11:00
2022-09-26 17:58:36 +10:00
2022-02-11 09:14:36 +11:00
2022-08-15 16:47:20 +02:00
2022-02-11 09:14:36 +11:00
2022-09-30 14:51:49 +10:00
2022-02-11 09:14:36 +11:00
2022-02-11 09:14:36 +11:00
2022-02-11 09:14:36 +11:00
2022-10-03 11:03:46 +11:00
2022-09-30 14:51:49 +10:00
2022-02-11 09:14:36 +11:00
2022-02-11 09:14:36 +11:00
2022-02-11 09:14:36 +11:00