quirks: remove subsurface unmap quirk for Sway

Sway used to have an issue where unmapping a subsurface did not damage
the surface below (https://github.com/swaywm/sway/issues/6960).

This has been fixed for quite some time now, so let's remove the
quirk.
This commit is contained in:
Daniel Eklöf 2025-06-09 07:08:24 +02:00
parent eeaecba723
commit 7347f4beb1
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
5 changed files with 8 additions and 26 deletions

View file

@ -123,6 +123,11 @@
### Removed
* Subsurface unmap quirk for Sway. This was a workaround added in
1.12.1, for Sway issue [#6960][sway-6960].
### Fixed
* `REP`: wrong width of repeated multi-codepoint graphemes.

View file

@ -67,6 +67,7 @@ quirk_weston_csd_off(struct terminal *term)
quirk_weston_subsurface_desync_off(term->window->csd.surface[i].sub);
}
#if 0
static bool
is_sway(void)
{
@ -82,13 +83,4 @@ is_sway(void)
return is_sway;
}
void
quirk_sway_subsurface_unmap(struct terminal *term)
{
return;
if (!is_sway())
return;
wl_surface_damage_buffer(term->window->surface.surf, 0, 0, INT32_MAX, INT32_MAX);
}
#endif

View file

@ -21,5 +21,3 @@ void quirk_weston_subsurface_desync_off(struct wl_subsurface *sub);
/* Shortcuts to call desync_{on,off} on all CSD subsurfaces */
void quirk_weston_csd_on(struct terminal *term);
void quirk_weston_csd_off(struct terminal *term);
void quirk_sway_subsurface_unmap(struct terminal *term);

View file

@ -1970,10 +1970,6 @@ render_overlay(struct terminal *term)
wl_surface_commit(overlay->surface.surf);
term->render.last_overlay_style = OVERLAY_NONE;
term->render.last_overlay_buf = NULL;
/* Work around Sway bug - unmapping a sub-surface does not
* damage the underlying surface */
quirk_sway_subsurface_unmap(term);
}
return;
}
@ -2919,13 +2915,8 @@ render_scrollback_position(struct terminal *term)
struct wl_window *win = term->window;
if (term->grid->view == term->grid->offset) {
if (win->scrollback_indicator.surface.surf != NULL) {
if (win->scrollback_indicator.surface.surf != NULL)
wayl_win_subsurface_destroy(&win->scrollback_indicator);
/* Work around Sway bug - unmapping a sub-surface does not damage
* the underlying surface */
quirk_sway_subsurface_unmap(term);
}
return;
}

View file

@ -820,10 +820,6 @@ urls_reset(struct terminal *term)
tll_foreach(term->window->urls, it) {
wayl_win_subsurface_destroy(&it->item.surf);
tll_remove(term->window->urls, it);
/* Work around Sway bug - unmapping a sub-surface does not
* damage the underlying surface */
quirk_sway_subsurface_unmap(term);
}
}