Skip to content

fix: honor deactivated unfullscreen when activation follows - #16

Open
Yocraft-2000 wants to merge 1 commit into
noctalia-dev:mainfrom
Yocraft-2000:fix-fullscreen
Open

fix: honor deactivated unfullscreen when activation follows#16
Yocraft-2000 wants to merge 1 commit into
noctalia-dev:mainfrom
Yocraft-2000:fix-fullscreen

Conversation

@Yocraft-2000

@Yocraft-2000 Yocraft-2000 commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Summary

honor deactivated unfullscreen when activation follows

English isn't my native language so I asked AI to summarize the changes to make them clearer:

A client that sheds fullscreen while deactivated had its request denied
to protect Wine-style minimize-on-focus-loss games. That broke opening a
url into a fullscreen video player from another workspace: firefox ends
its video fullscreen and requests unfullscreen before its xdg-activation
lands, so the request was dropped and the configure re-asserted
fullscreen, leaving a black screen until a manual toggle.

Park such requests instead of denying them: an xdg or foreign activation
focusing the view within 750ms applies the parked request, anything else
lets it expire silently. Any honored or manual state change supersedes
a parked request.

Motivation

When I have youtube in fullscreen for example and I open a tab with firefox <url> from another workspace, firefox shows a black screen until I manually exit fullscreen. It doesn't exit fullscreen automatically.

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Refactoring
  • Build / packaging
  • Documentation

Related Issue

Testing

Opening a new tab from another workspace with xdg or firefox leaves fullscreen. I can't test wine games since I don't have any.

Manual Coverage

  • Tested in a nested Umbriel session
  • Tested in a native Umbriel session
  • Tested with multiple monitors
  • Tested with a scaled output
  • Tested with native Wayland applications
  • Tested with X11 applications through xwayland-satellite
  • Tested with the scrolling layout
  • Tested with the dwindle layout

Screenshots / Videos

Checklist

  • This PR is ready for review, or it is marked as Draft.
  • I read and followed the relevant guidance in CONTRIBUTING.md.
  • I initialized and updated the SceneFX submodule where required.
  • I ran just format, or this PR has no C++ changes.
  • I ran the relevant build, test, lint, or verification commands, or explained why they were not run.
  • I functionally verified compositor behavior where automated checks are insufficient.
  • I self-reviewed the changes.
  • I checked for new warnings or errors.
  • I updated docs/ and examples/config.toml, or this PR does not change user-facing configuration or behavior.
  • I used canonical names for config keys, IPC actions, paths, and identifiers.

Additional Notes

I didn't update the comments in the code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant