mpv/video/out
Dudemanguy e2c24adebe wayland: unset hidden state in frame callback
More wayland weirdness. So previously, flipping a hidden state from true
to false was done in vo_wayland_wait_frame. In theory, this would be
after you get the frame callback and all those events so there's no
problem. However since the function also does a bunch of
flushing/dispatching/etc. to the default display queue so a lot of
unknown things can happen before we actually set the hidden variable
back to false. For example if a single image was paused and left on
another virtual desktop long enough (~5 minutes) while also not having
focus, switching back to that desktop could render it a black frame.

This edge case was supposed to be handled by the surface being activated
again in the toplevel event but apparently that doesn't always work. The
fix is to just delete all of that junk and set wl->hidden = false in the
frame callback. What's actually happening is kind of a mystery honestly.
Probably the compositor drops the buffers after a while as an
optimization (sensible) and forces a repaint if you switch back to the
virtual desktop. Somehow wl->hidden not being set to false would not
properly trigger a repaint (likely because it also sends a toplevel
event which does stuff) thus you just get a black window. If you just
make sure to set hidden in the frame callback, it appears like all of
these problems and edge cases are solved. Since this event must happen
first, that makes sense. That simplifies a lot of stuff and fixes some
subtle bugs at the same time so just go with this approach.
2021-07-26 15:05:33 -05:00
..
cocoa
d3d11 options: Make validation and help possible for all option types 2021-03-28 19:46:27 +03:00
gpu vo_gpu: vulkan: implement a VkDisplayKHR backed context 2021-06-11 09:54:16 -07:00
hwdec vo_gpu: hwdec_vaapi: silence errors while probing 2021-05-19 04:06:52 +02:00
mac mac: add support for display-width/display-height property 2021-05-06 17:36:55 +00:00
opengl egl_helpers: fix create_context fallback behavior 2021-07-25 15:32:53 +00:00
placebo vo_gpu: placebo: keep track of texture sample mode 2021-03-21 17:18:20 +01:00
vulkan wayland: fix wl_surface_set_buffer_scale usage 2021-06-27 10:58:59 -05:00
win32
android_common.c options: simplify --android-surface-size handling 2020-09-20 12:04:25 +02:00
android_common.h
aspect.c
aspect.h
bitmap_packer.c
bitmap_packer.h
cocoa_cb_common.swift mac: fix traditional fullscreen on macOS 11 2021-02-27 13:12:46 +01:00
cocoa_common.h
cocoa_common.m
dither.c
dither.h
dr_helper.c
dr_helper.h
drm_atomic.c
drm_atomic.h
drm_common.c options: Make validation and help possible for all option types 2021-03-28 19:46:27 +03:00
drm_common.h
drm_prime.c
drm_prime.h
filter_kernels.c filter_kernels: fix quadric window 2021-05-04 13:18:43 +02:00
filter_kernels.h
libmpv.h
libmpv_sw.c
vo.c video/out/vo_sixel.c: Implement sixel as a output device 2020-11-07 18:51:49 +02:00
vo.h command: add display-width/display-height property 2021-05-06 17:36:55 +00:00
vo_caca.c
vo_direct3d.c
vo_drm.c command: add display-width/display-height property 2021-05-06 17:36:55 +00:00
vo_gpu.c vo_gpu: fix trivial memory leak 2021-05-07 15:01:15 +02:00
vo_image.c
vo_lavc.c
vo_libmpv.c
vo_mediacodec_embed.c
vo_null.c
vo_rpi.c vo_rpi: fix argument name 2021-06-08 10:28:10 -05:00
vo_sdl.c
vo_sixel.c vo_sixel: don't divide by zero on small terminal 2020-12-02 17:06:11 +02:00
vo_tct.c vo_tct: don't leak the frame reference 2020-11-29 14:15:51 +02:00
vo_vaapi.c
vo_vdpau.c vo_vdpau: remove an unused variable 2020-09-10 23:25:30 +02:00
vo_wlshm.c wayland: always be sure to initially try to render 2021-06-27 10:58:42 -05:00
vo_x11.c
vo_xv.c
w32_common.c win32: support the property 'focused' 2021-05-27 13:49:07 +03:00
w32_common.h
wayland_common.c wayland: unset hidden state in frame callback 2021-07-26 15:05:33 -05:00
wayland_common.h wayland: refactor surface scaling 2021-06-30 16:37:36 +00:00
win_state.c
win_state.h
x11_common.c command: add display-width/display-height property 2021-05-06 17:36:55 +00:00
x11_common.h x11: update geometry/autofit opts on runtime 2020-12-14 22:44:05 +00:00