0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 03:52:22 +02:00
mpv/video
Dudemanguy 895f40e150 wayland: only perform a rescale if window is on one output
The mpv window overlapping multiple outputs with different scale values
can result in some weird behavior when dragging it from one monitor to
another one. This is due to the way some compositors implement
preferred_scale or preferred_buffer_scale (integer scale equivalent).
Depending on the scale values, mpv window has to be resized to match the
new scaling value (due to fractional scaling requiring a viewport). This
can cause the window to become smaller and no longer overlap the monitor
you were just trying to drag it to. Repeat this and the window will
become smaller and smaller. Depending on the layout, the reverse can
also happen (the window becomes larger). This can cause additional
events to fire as the preferred_scale value may change again which does
more weird things.

It seems kwin is not affected by this because their implementation of
preferred_scale sends the event only if the window is fully on the new
monitor. Honestly, this is probably more logical anyway but we should at
least deal with the other implementations better. Try to deal with it by
reworking scaling changes so they only occur when the mpv window is
fully on one monitor. If we get a preferred_scale event and there is an
overlap, save it as a pending change to be performed on the next
surface_enter or surface_leave event (whichever results in there being
only one monitor. Some weird rendering glitches can still happen during
overlap but this makes it usable again.
2024-04-14 17:09:31 +00:00
..
decode various: make filter internal function names more descriptive 2024-04-10 19:00:22 +02:00
filter vf_format: add hdr10plus sub-parameter to format video filter 2024-03-09 05:58:52 +00:00
out wayland: only perform a rescale if window is on one output 2024-04-14 17:09:31 +00:00
csputils.c csputils: add missing PL_COLOR_SYSTEM names 2024-03-09 05:58:52 +00:00
csputils.h csputils: replace more primitives with pl_ 2024-01-22 14:54:55 +00:00
cuda.c cuda: move --cuda-device to cuda_opts group 2023-09-22 14:20:38 +00:00
d3d.c vo: add missing return variable assignment 2023-11-18 23:55:28 +00:00
d3d.h video: move d3d.c out of decode sub directory 2017-12-01 17:58:56 +01:00
drmprime.c various: drop unused #include "config.h" 2023-02-20 14:21:18 +00:00
fmt-conversion.c video: don't define IMGFMT_VULKAN conditionally 2024-02-26 17:37:20 +01:00
fmt-conversion.h video/fmt-conversion, img_format: change license to LGPL 2017-06-18 15:15:07 +02:00
hwdec.c ALL: use new mp_thread abstraction 2023-11-05 17:36:17 +00:00
hwdec.h hwtransfer: use the right hardware config to find conversion targets 2023-08-26 10:07:55 -07:00
image_loader.c screenshot, vo_image: use global swscale/zimg parameters 2019-10-31 15:44:09 +01:00
image_loader.h x11: load icon differently 2017-07-01 15:56:12 +02:00
image_writer.c image_writer: refactor screenshot write functions 2024-03-19 19:30:27 +01:00
image_writer.h image_writer: fix TOCTOU in screenshot filename generation 2024-03-19 19:30:27 +01:00
img_format.c csputils: replace mp_colorspace with pl_color_space 2024-01-22 14:54:55 +00:00
img_format.h video: don't define IMGFMT_VULKAN conditionally 2024-02-26 17:37:20 +01:00
mp_image_pool.c chmap: mp_image_pool: drop stale mentions of Libav in comments 2024-01-20 16:10:20 +00:00
mp_image_pool.h f_hwtransfer: disable vulkan multiplane images when uploading from cuda 2023-05-28 15:46:05 -07:00
mp_image.c video/image_writer: attach MDVC metadata and CLLI metadata 2024-03-19 09:49:04 +01:00
mp_image.h mp_image: add Dolby Vision metadata mapping 2024-03-09 05:58:52 +00:00
repack.c repack: add restrict qualifier to src/dst pointers 2024-03-19 13:04:05 +01:00
repack.h repack: add support for converting from/to float formats 2020-05-09 18:02:57 +02:00
sws_utils.c csputils: replace mp_chroma_location with pl_chroma_location 2024-01-22 14:54:55 +00:00
sws_utils.h sws_utils: work around libswscale corrupting memory yet again 2020-09-17 15:24:27 +02:00
vaapi.c various: avoid function pointer casts 2024-02-28 16:04:02 +00:00
vaapi.h csputils: replace mp_colorspace with pl_color_space 2024-01-22 14:54:55 +00:00
vdpau_functions.inc
vdpau_mixer.c mp_image: add mp_image_params_static_equal for finer comparision 2024-03-09 05:58:52 +00:00
vdpau_mixer.h options: transition options from OPT_FLAG to OPT_BOOL 2023-02-21 17:15:17 +00:00
vdpau.c ALL: use new mp_thread abstraction 2023-11-05 17:36:17 +00:00
vdpau.h ALL: use new mp_thread abstraction 2023-11-05 17:36:17 +00:00
zimg.c csputils: replace more primitives with pl_ 2024-01-22 14:54:55 +00:00
zimg.h options: transition options from OPT_FLAG to OPT_BOOL 2023-02-21 17:15:17 +00:00