summaryrefslogtreecommitdiffstats
path: root/video/out/w32_common.c
diff options
context:
space:
mode:
authorKacper Michajłow <kasper93@gmail.com>2023-10-16 05:37:00 +0200
committerDudemanguy <random342@airmail.cc>2023-10-18 15:22:22 +0000
commit94b758497255d2ec8de08cc7045ff8856a411182 (patch)
tree6621a3d663624d90e27552aa20ec0cfa3114c4c5 /video/out/w32_common.c
parentd305dc8d253985f4d7ca324231658ed6f323ab37 (diff)
downloadmpv-94b758497255d2ec8de08cc7045ff8856a411182.tar.bz2
mpv-94b758497255d2ec8de08cc7045ff8856a411182.tar.xz
win32: clear background only on first paint
Some users report visible black frames during window resize, this should not happen in most cases. Let's just keep stale content as it is less distracting. While still clearing on first window paint to avoid white background. Fixes: #12642
Diffstat (limited to 'video/out/w32_common.c')
-rw-r--r--video/out/w32_common.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/video/out/w32_common.c b/video/out/w32_common.c
index 7461ab73a1..c85e4d55d6 100644
--- a/video/out/w32_common.c
+++ b/video/out/w32_common.c
@@ -179,6 +179,8 @@ struct vo_w32_state {
int snap_dy;
HANDLE avrt_handle;
+
+ bool cleared;
};
static void adjust_window_rect(struct vo_w32_state *w32, HWND hwnd, RECT *rc)
@@ -1209,10 +1211,11 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam,
switch (message) {
case WM_ERASEBKGND:
- if (!w32->parent && (!w32->opts->border || w32->current_fs))
+ if (w32->cleared || !w32->opts->border || w32->current_fs)
return TRUE;
break;
case WM_PAINT:
+ w32->cleared = true;
signal_events(w32, VO_EVENT_EXPOSE);
break;
case WM_MOVE: {