mirror of
https://github.com/brl/mutter.git
synced 2024-11-24 17:10:40 -05:00
screen-cast: Fix window recording on HiDPI
Using the same scale for the window as the
logical monitor only works correctly when having
the experimental 'scale-monitor-framebuffer'
feature enabled.
Without this experimental feature, the stream
will contain a black screen, where the actual
window only takes a small part of it.
Therefore, use a scale of 1 for the non-
experimental case.
Patch is based on commit 3fa6a92cc5
.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/976
This commit is contained in:
parent
e32e20521d
commit
e89cea8e5a
@ -225,11 +225,15 @@ meta_screen_cast_window_stream_initable_init (GInitable *initable,
|
|||||||
G_CALLBACK (on_window_unmanaged),
|
G_CALLBACK (on_window_unmanaged),
|
||||||
window_stream);
|
window_stream);
|
||||||
|
|
||||||
|
if (meta_is_stage_views_scaled ())
|
||||||
|
scale = (int) ceilf (meta_logical_monitor_get_scale (logical_monitor));
|
||||||
|
else
|
||||||
|
scale = 1;
|
||||||
|
|
||||||
/* We cannot set the stream size to the exact size of the window, because
|
/* We cannot set the stream size to the exact size of the window, because
|
||||||
* windows can be resized, whereas streams cannot.
|
* windows can be resized, whereas streams cannot.
|
||||||
* So we set a size equals to the size of the logical monitor for the window.
|
* So we set a size equals to the size of the logical monitor for the window.
|
||||||
*/
|
*/
|
||||||
scale = (int) ceil (meta_logical_monitor_get_scale (logical_monitor));
|
|
||||||
window_stream->logical_width = logical_monitor->rect.width;
|
window_stream->logical_width = logical_monitor->rect.width;
|
||||||
window_stream->logical_height = logical_monitor->rect.height;
|
window_stream->logical_height = logical_monitor->rect.height;
|
||||||
window_stream->stream_width = logical_monitor->rect.width * scale;
|
window_stream->stream_width = logical_monitor->rect.width * scale;
|
||||||
|
Loading…
Reference in New Issue
Block a user