diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ade3b6f..b048bda3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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. diff --git a/quirks.c b/quirks.c index 7cc8a8f1..67cb587e 100644 --- a/quirks.c +++ b/quirks.c @@ -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 diff --git a/quirks.h b/quirks.h index 0e840667..e762bb3e 100644 --- a/quirks.h +++ b/quirks.h @@ -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); diff --git a/render.c b/render.c index 244152ef..1c24bafa 100644 --- a/render.c +++ b/render.c @@ -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; } diff --git a/url-mode.c b/url-mode.c index 199ff3f1..35843219 100644 --- a/url-mode.c +++ b/url-mode.c @@ -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); } }