Skip to content
This repository has been archived by the owner on Jul 20, 2024. It is now read-only.

Commit

Permalink
patches: Add patch that suppresses errors when surface is not divisib…
Browse files Browse the repository at this point in the history
…le by scale (#9)

* add surface nondivisible no error patch

* rename

* add a comment

* rename
  • Loading branch information
thejch authored Apr 21, 2024
1 parent eee10a3 commit b9063af
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions patches/surface-nondivisible-by-scale.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
This patch suppresses the error when the surface buffer size is not divisible by the scale,
and logs a bug message instead. It reverts this commit:
https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/18595000f3a21502fd60bf213122859cc348f9af
It is intended as a temporary workaround for https://github.com/hyprwm/Hyprland/issues/509
diff --git a/types/wlr_compositor.c b/types/wlr_compositor.c
index c5044ce4..89e410bc 100644
--- a/types/wlr_compositor.c
+++ b/types/wlr_compositor.c
@@ -209,21 +209,12 @@ static void surface_finalize_pending(struct wlr_surface *surface) {
if (!pending->viewport.has_src &&
(pending->buffer_width % pending->scale != 0 ||
pending->buffer_height % pending->scale != 0)) {
- // TODO: send WL_SURFACE_ERROR_INVALID_SIZE error to cursor surfaces
- // once this issue is resolved:
+ // TODO: send WL_SURFACE_ERROR_INVALID_SIZE error once this issue is
+ // resolved:
// https://gitlab.freedesktop.org/wayland/wayland/-/issues/194
- if (!surface->role
- || strcmp(surface->role->name, "wl_pointer-cursor") == 0
- || strcmp(surface->role->name, "wp_tablet_tool-cursor") == 0) {
- wlr_log(WLR_DEBUG, "Client bug: submitted a buffer whose size (%dx%d) "
- "is not divisible by scale (%d)", pending->buffer_width,
- pending->buffer_height, pending->scale);
- } else {
- wlr_surface_reject_pending(surface, surface->resource,
- WL_SURFACE_ERROR_INVALID_SIZE,
- "Buffer size (%dx%d) is not divisible by scale (%d)",
- pending->buffer_width, pending->buffer_height, pending->scale);
- }
+ wlr_log(WLR_DEBUG, "Client bug: submitted a buffer whose size (%dx%d) "
+ "is not divisible by scale (%d)", pending->buffer_width,
+ pending->buffer_height, pending->scale);
}

if (pending->viewport.has_dst) {

0 comments on commit b9063af

Please sign in to comment.