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

Unmapping a sub-surface does not damage the affected region #6960

Closed
dnkl opened this issue Apr 25, 2022 · 3 comments
Closed

Unmapping a sub-surface does not damage the affected region #6960

dnkl opened this issue Apr 25, 2022 · 3 comments
Labels
bug Not working as intended renderer Related to Sway's renderer

Comments

@dnkl
Copy link
Contributor

dnkl commented Apr 25, 2022

Sway version: 1.7
Foot version: 1.12

Logs:
sway.log (sway -d)
foot.log (WAYLAND_DEBUG=1 foot)

Description:
Foot's scrollback search mode (ctrl+shift+r), starting with version 1.12, dims the terminal window by stacking a sub-surface with an alpha-channel on top of the main window. When exiting scrollback search mode, this sub-surface is unmapped (i.e. a NULL buffer is attached and committed). This works well on at least River, Weston and Mutter. On Sway however, it appears the region under the unmapped sub-surface is not damaged, causing it to remain dimmed until something else triggers a refresh.

It's pretty easy to test: enter scrollback search mode, type a couple of letters, and then press Return. In almost all cases, the window remains dimmed, except for the row the (terminal) cursor is on.

A workaround (in foot) is to explicitly damage the entire toplevel buffer when unmapping the sub-surface.

screenshot

@dnkl dnkl added the bug Not working as intended label Apr 25, 2022
@emersion emersion added the renderer Related to Sway's renderer label Apr 26, 2022
@dnkl
Copy link
Contributor Author

dnkl commented Apr 28, 2022

FYI: foot-1.12.1 added a workaround for this. In other words, if you're trying to reproduce the behavior described above, you need foot-1.12.0.

@Nefsen402
Copy link
Member

#6844 Should fix this.

algitbot pushed a commit to alpinelinux/aports that referenced this issue May 12, 2023
This adds a quirk that works around rendering bugs in combination with
sway. Specifically foot assumes damage to propagate to the surface
beneath a subsurface. This matches the behavior of most Wayland
compositors, but sway, as of now, falls out of the line here.

See swaywm/sway#6960 for the issue in sway.

See https://codeberg.org/dnkl/foot/commit/3b41379be43a21a00a776d0d136c5d1b2fe4007e
for the commit message in foot.
algitbot pushed a commit to alpinelinux/aports that referenced this issue May 12, 2023
This adds a quirk that works around rendering bugs in combination with
sway. Specifically foot assumes damage to propagate to the surface
beneath a subsurface. This matches the behavior of most Wayland
compositors, but sway, as of now, falls out of the line here.

See swaywm/sway#6960 for the issue in sway.

See https://codeberg.org/dnkl/foot/commit/3b41379be43a21a00a776d0d136c5d1b2fe4007e
for the commit message in foot.
lbrayner pushed a commit to lbrayner/foot that referenced this issue Jan 15, 2024
When unmapping a sub-surface, Sway <= 1.8 does not damage the surface
beneath the sub-surface.

swaywm/sway#6960

The workaround is to manually damage the main surface. Previously,
this was done when exiting scrollback search, and after the ‘flash’
OSC. But other sub-surfaces, that may also be unmapped, did not.

This patch adds a quirk handler that does this, and calls it when:

* Exiting scrollback search
* Ending the ‘flash’ OSC
* Exiting unicode input mode
* Clearing URL labels
* Removing the scrollback position indicator

Closes #1335
lbrayner pushed a commit to lbrayner/foot that referenced this issue Jan 15, 2024
…search

3b41379 introduced a regression,
where canceling a scrollback search didn’t refresh the viewport
correctly; the viewport was changed, but the screen content was not
refreshed.

This worked before, because the workaround for
swaywm/sway#6960 always called
term_damage_view() when exiting scrollback search mode.

3b41379 removed that call since it’s
no longer required. *Except* when executing the
BIND_ACTION_SEARCH_CANCEL binding, since then the viewport may be
moved.

Note that this regression affected *all* compositors, not just Sway.

Closes #1354
@vyivel
Copy link
Member

vyivel commented Jan 18, 2024

Closed by #6844.

@vyivel vyivel closed this as completed Jan 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Not working as intended renderer Related to Sway's renderer
Development

No branches or pull requests

4 participants