Skip to content

fix: preserve column maximize across fullscreen / maximize-to-edges - #19

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

fix: preserve column maximize across fullscreen / maximize-to-edges#19
Yocraft-2000 wants to merge 1 commit into
noctalia-dev:mainfrom
Yocraft-2000:fix-maximize

Conversation

@Yocraft-2000

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

Copy link
Copy Markdown
Contributor

Summary

Preserve column maximize when toggling fullscreen or maximize-to-edges.
I tried to add some restore etc but I figured I only need to remove these. I'm not sure about this, it is kinda intended but breaks the maximize, and idk why it would be better to unmaximize when leaving fullscreen.
Also with the fix the behavior is the same as in niri and I have no issues.

Motivation

When toggling fullscreen or maximize-to-edges while the window is maximized, it breaks the toggle-maximize bind. It becomes impossible to unmaximize with the bind.

Type of Change

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

Related Issue

Testing

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

@nerdislb

Copy link
Copy Markdown

Confirmed independently in a native Umbriel session with Zen Browser. The failure comes from the same state transition this PR changes: entering fullscreen from a full-width scrolling column discards/restores column-maximize state inconsistently, leaving window-toggle-maximize unable to return the window to its prior width.

I initially opened #22 before noticing this PR. That alternative restored the saved width immediately when leaving fullscreen, but preserving column maximize as proposed here matches Niri better: fullscreen can round-trip back to maximized, and a subsequent maximize toggle restores the original width. I closed #22 in favor of this PR.

I also built a contained headless regression check using a real Wayland client. A useful assertion sequence for this approach would be:

  1. default scrolling width: 624 px
  2. window-toggle-maximize: 1260 px
  3. fullscreen enter/leave: still 1260 px
  4. window-toggle-maximize: restored to 624 px

All 19 unit tests passed during the related verification. Happy to contribute/adapt the harness check if useful.

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.

2 participants