Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fontend: Make OBSProject a parent window #11773

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

kkartaltepe
Copy link
Collaborator

Description

This window was previously a parent of OBSQTDisplay, however OBSQTDisplay is supposed to be completely rendered by OBS. On linux this causes issues like not having window decorations and weird rendering artifacts during resize. For wayland systems that negotiate explicit sync it also triggers protocol violations (crashes) due to QT and OBS thinking they should be rendering this window.

Instead make the project a parent window owned by Qt that only contains one widget, the OBSQTDisplay. This makes the window behave like the main OBS window and preview.

fixes #6283

I gave up on gnome after seeing that qt and gnome just cant agree on how to fullscreen at the wayland protocol even, and just disable it like cg did in #11558 but only in the known broken config since this probably works on KDE but should be tested.

Still needs windows and mac testing since although its supposed to be more correct do all the sizing before show these changes might not be correct on all platforms.

Motivation and Context

Presumably with syncobj being enabled this could now not only affect nvidia users, gnome enables it by default in wayland now so this issue could surface for anyone if mesa changes defaults.

How Has This Been Tested?

Works on sway/xwayland, "works" on gnome/xwayland.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)

Checklist:

  • My code has been run through clang-format.
  • I have read the contributing document.
  • My code is not on the master branch.
  • The code has been tested.
  • All commit messages are properly formatted and commits squashed where appropriate.
  • I have included updates to all appropriate documentation.

This window was previously a parent of OBSQTDisplay, however
OBSQTDisplay is supposed to be completely rendered by OBS. On linux this
causes issues like not having window decorations and weird rendering
artifacts during resize. For wayland systems that negotiate explicit
sync it also triggers protocol violations (crashes) due to QT and OBS
thinking they should be rendering this window.

Instead make the project a parent window owned by Qt that only contains
one widget, the OBSQTDisplay. This makes the window behave like the
main OBS window and preview.

fixes obsproject#6283

Co-authored-by: cg2121 <[email protected]>
@kkartaltepe kkartaltepe requested a review from cg2121 January 26, 2025 03:51
@kkartaltepe kkartaltepe added Seeking Testers Build artifacts on CI Bug Fix Non-breaking change which fixes an issue labels Jan 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Fix Non-breaking change which fixes an issue Seeking Testers Build artifacts on CI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Projector window - no titlebar (Wayland, Gnome)
1 participant