From 2021456be0e7b55d12cb2d26bba0281c0c0d1a10 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Fri, 21 Apr 2023 21:26:47 +0200 Subject: Fix focused window follow failing on vaapi for the first window. Also dont error on fail to focus window --- src/capture/xcomposite_cuda.c | 6 +++--- src/capture/xcomposite_vaapi.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/capture/xcomposite_cuda.c b/src/capture/xcomposite_cuda.c index 93965bd..698338c 100644 --- a/src/capture/xcomposite_cuda.c +++ b/src/capture/xcomposite_cuda.c @@ -320,13 +320,13 @@ static void gsr_capture_xcomposite_cuda_tick(gsr_capture *cap, AVCodecContext *v } if(cap_xcomp->params.follow_focused && !cap_xcomp->follow_focused_initialized) { - cap_xcomp->follow_focused_initialized = true; init_new_window = true; } if(init_new_window) { Window focused_window = get_focused_window(cap_xcomp->dpy, cap_xcomp->net_active_window_atom); - if(focused_window != cap_xcomp->window) { + if(focused_window != cap_xcomp->window || !cap_xcomp->follow_focused_initialized) { + cap_xcomp->follow_focused_initialized = true; XSelectInput(cap_xcomp->dpy, cap_xcomp->window, 0); cap_xcomp->window = focused_window; XSelectInput(cap_xcomp->dpy, cap_xcomp->window, StructureNotifyMask | ExposureMask); @@ -364,7 +364,7 @@ static void gsr_capture_xcomposite_cuda_tick(gsr_capture *cap, AVCodecContext *v fprintf(stderr, "gsr error: gsr_capture_xcomposite_cuda_tick: window_texture_on_resize failed\n"); //cap_xcomp->should_stop = true; //cap_xcomp->stop_is_error = true; - //return; + return; } cap_xcomp->texture_size.x = 0; diff --git a/src/capture/xcomposite_vaapi.c b/src/capture/xcomposite_vaapi.c index 522d75b..ab4154c 100644 --- a/src/capture/xcomposite_vaapi.c +++ b/src/capture/xcomposite_vaapi.c @@ -249,13 +249,13 @@ static void gsr_capture_xcomposite_vaapi_tick(gsr_capture *cap, AVCodecContext * } if(cap_xcomp->params.follow_focused && !cap_xcomp->follow_focused_initialized) { - cap_xcomp->follow_focused_initialized = true; init_new_window = true; } if(init_new_window) { Window focused_window = get_focused_window(cap_xcomp->dpy, cap_xcomp->net_active_window_atom); if(focused_window != cap_xcomp->window || !cap_xcomp->follow_focused_initialized) { + cap_xcomp->follow_focused_initialized = true; XSelectInput(cap_xcomp->dpy, cap_xcomp->window, 0); cap_xcomp->window = focused_window; XSelectInput(cap_xcomp->dpy, cap_xcomp->window, StructureNotifyMask | ExposureMask); @@ -294,7 +294,7 @@ static void gsr_capture_xcomposite_vaapi_tick(gsr_capture *cap, AVCodecContext * fprintf(stderr, "gsr error: gsr_capture_xcomposite_vaapi_tick: window_texture_on_resize failed\n"); //cap_xcomp->should_stop = true; //cap_xcomp->stop_is_error = true; - //return; + return; } cap_xcomp->texture_size.x = 0; -- cgit v1.2.3