diff options
author | dec05eba <dec05eba@protonmail.com> | 2022-03-31 01:50:06 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2022-03-31 01:50:06 +0200 |
commit | e49d30048f46a51c766c347e52e9ce24522b6861 (patch) | |
tree | 7a034b225e1b4f3a6126b893ecb53805d284930d | |
parent | 7228d3664764a55018d93b216b917668cfc25a32 (diff) |
Close screenrecorder when target window is closed
-rw-r--r-- | TODO | 3 | ||||
-rw-r--r-- | src/main.cpp | 6 |
2 files changed, 8 insertions, 1 deletions
@@ -7,4 +7,5 @@ Load cuda at runtime with dlopen. Track window damages and only update then. That is better for output file size. Remove cuda to cuda copy when using nvFBC if possible. ffmpeg is getting in the way. Getting the texture of a window when using a compositor is an nvidia specific limitation. When gpu-screen-recorder supports other gpus then this can be ignored. -Remove dependency on glfw (and glew?).
\ No newline at end of file +Remove dependency on glfw (and glew?). +Quickly changing workspace and back while recording under i3 breaks the screen recorder. The resize is triggered and it fails to recreate texture (fail to get texture size, texture id probably == 0). diff --git a/src/main.cpp b/src/main.cpp index 858755b..21927a3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1405,6 +1405,12 @@ int main(int argc, char **argv) { if (frame_time_overflow >= 0.0) { frame_timer_start = time_now - frame_time_overflow; + if(dpy && src_window_id) { + XWindowAttributes attr; + if(!XGetWindowAttributes(dpy, src_window_id, &attr)) + running = 0; + } + bool frame_captured = true; if(redraw) { redraw = false; |