From 6277c5e0157dd6091f8d86ef24f60b0316bb76ca Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Sat, 16 Oct 2021 19:53:42 +0200 Subject: [PATCH] upstream patch for fixing crash with wayland driver; rel 2 affects wlroots based compositors --- SDL2.spec | 4 +++- wayland-sizeless-config.patch | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 wayland-sizeless-config.patch diff --git a/SDL2.spec b/SDL2.spec index 5209a75..01ca363 100644 --- a/SDL2.spec +++ b/SDL2.spec @@ -61,12 +61,13 @@ Summary(pl.UTF-8): SDL (Simple DirectMedia Layer) - Biblioteka do gier/multimedi Summary(zh_CN.UTF-8): SDL (Simple DirectMedia Layer) Generic APIs - 游戏/多媒体库 Name: SDL2 Version: 2.0.16 -Release: 1 +Release: 2 License: Zlib (BSD-like) Group: Libraries Source0: http://www.libsdl.org/release/%{name}-%{version}.tar.gz # Source0-md5: 98b8a1535a757ea1d03ae44e2fb20247 Patch0: %{name}-config.patch +Patch1: wayland-sizeless-config.patch URL: http://www.libsdl.org/ %{?with_kms:BuildRequires: Mesa-libgbm-devel >= 11.1.0} %{?with_directfb:BuildRequires: DirectFB-devel >= 1.0.0} @@ -214,6 +215,7 @@ SDL - przykładowe programy. %prep %setup -q %patch0 -p1 +%patch1 -p1 %build %{__libtoolize} diff --git a/wayland-sizeless-config.patch b/wayland-sizeless-config.patch new file mode 100644 index 0000000..75cc97b --- /dev/null +++ b/wayland-sizeless-config.patch @@ -0,0 +1,32 @@ +From 63285c2562ba05e5bd113e7aaa003d1eeeec52d9 Mon Sep 17 00:00:00 2001 +From: Ethan Lee +Date: Wed, 11 Aug 2021 09:59:43 -0400 +Subject: [PATCH] wayland: Ignore stateless/sizeless configs when starting in + fullscreen mode + +--- + src/video/wayland/SDL_waylandwindow.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/video/wayland/SDL_waylandwindow.c b/src/video/wayland/SDL_waylandwindow.c +index 025dd30eeb..451d33b767 100644 +--- a/src/video/wayland/SDL_waylandwindow.c ++++ b/src/video/wayland/SDL_waylandwindow.c +@@ -219,9 +219,15 @@ handle_configure_xdg_toplevel(void *data, + + /* Foolishly do what the compositor says here. If it's wrong, don't + * blame us, we were explicitly instructed to do this. ++ * ++ * UPDATE: Nope, we can't actually do that, the compositor may give ++ * us a completely stateless, sizeless configure, with which we have ++ * to enforce our own state anyway. + */ +- window->w = width; +- window->h = height; ++ if (width != 0 && height != 0) { ++ window->w = width; ++ window->h = height; ++ } + + /* This part is good though. */ + if (window->flags & SDL_WINDOW_ALLOW_HIGHDPI) { -- 2.44.0