mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-01-28 16:12:08 -05:00
dd64fef0848dd31c1bd75dbb1e06960d7ed0dd93
There are two situations where xcomposite window capture will capture random windows: on first creation, and when going to the properties when the current window is invalid. The first happens because for whatever reason someone decided to just make it capture the first top-level window if there is no set value. The second happens because the properties widget cannot find the value it's looking for and defaults to the first one when the properties are opened, thus selecting and capturing the first window in the list (which is probably something we should fix in the properties view at some point but I don't want to dive into code that's even *more* cursed than xcomposite code right now) I think that this was a major oversight and that whoever wrote it however many countless years ago did not realize that this is something that maybe users don't want to have happen. So instead, this diff makes it so that on first creation, it creates a value that says "[Select a window to capture]" that keeps the capture inactive until a user actually chooses a window rather than the top-level window. It also makes it so that if the user has a window that is no longer valid, it will keep that window in the list and as the currently selected value, which prevents it from automatically selecting the first window in the list when properties are opened. (Have I mentioned xcomposite is cursed? Trying to debug xcomposite code in a debugger freezes my window compositor and forces me to do a hard restart of my entire computer, so I was forced to use printf debugging. Absolute nightmare-inducing code in here.)
OBS Studio <https://obsproject.com> =================================== .. image:: https://github.com/obsproject/obs-studio/actions/workflows/push.yaml/badge.svg?branch=master :alt: OBS Studio Build Status - GitHub Actions :target: https://github.com/obsproject/obs-studio/actions/workflows/push.yaml?query=branch%3Amaster .. image:: https://badges.crowdin.net/obs-studio/localized.svg :alt: OBS Studio Translation Project Progress :target: https://crowdin.com/project/obs-studio .. image:: https://img.shields.io/discord/348973006581923840.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2 :alt: OBS Studio Discord Server :target: https://obsproject.com/discord What is OBS Studio? ------------------- OBS Studio is software designed for capturing, compositing, encoding, recording, and streaming video content, efficiently. It's distributed under the GNU General Public License v2 (or any later version) - see the accompanying COPYING file for more details. Quick Links ----------- - Website: https://obsproject.com - Help/Documentation/Guides: https://github.com/obsproject/obs-studio/wiki - Forums: https://obsproject.com/forum/ - Build Instructions: https://github.com/obsproject/obs-studio/wiki/Install-Instructions - Developer/API Documentation: https://obsproject.com/docs - Donating/backing/sponsoring: https://obsproject.com/contribute - Bug Tracker: https://github.com/obsproject/obs-studio/issues Contributing ------------ - If you would like to help fund or sponsor the project, you can do so via `Patreon <https://www.patreon.com/obsproject>`_, `OpenCollective <https://opencollective.com/obsproject>`_, or `PayPal <https://www.paypal.me/obsproject>`_. See our `contribute page <https://obsproject.com/contribute>`_ for more information. - If you wish to contribute code to the project, please make sure to read the coding and commit guidelines: https://github.com/obsproject/obs-studio/blob/master/CONTRIBUTING.rst - Developer/API documentation can be found here: https://obsproject.com/docs - If you wish to contribute translations, do not submit pull requests. Instead, please use Crowdin. For more information read this page: https://obsproject.com/wiki/How-To-Contribute-Translations-For-OBS - Other ways to contribute are by helping people out with support on our forums or in our community chat. Please limit support to topics you fully understand -- bad advice is worse than no advice. When it comes to something that you don't fully know or understand, please defer to the official help or official channels. SAST Tools ---------- `PVS-Studio <https://pvs-studio.com/pvs-studio/?utm_source=website&utm_medium=github&utm_campaign=open_source>`_ - static analyzer for C, C++, C#, and Java code.
Description
Languages
C
53.4%
C++
35.4%
CMake
3.5%
Swift
3%
Objective-C
2.7%
Other
1.8%