wayland: Only call libdecor_dispatch() if we've loaded libdecor

As of #5703, we call libdecor_dispatch() in Wayland_WaitEventTimeout(),
but this will crash if we don't load libdecor, as
SDL_VideoData::shell.libdecor will be NULL.

Since we don't load libdecor if we don't intend to use it (i.e., if
should_use_libdecor returns false), this results in a crash under KDE in
almost all circumstances.
This commit is contained in:
David Gow 2022-06-01 23:06:19 +08:00 committed by Sam Lantinga
parent 7fa46ec40b
commit 847539afeb
1 changed files with 3 additions and 1 deletions

View File

@ -295,7 +295,9 @@ Wayland_WaitEventTimeout(_THIS, int timeout)
} }
#ifdef HAVE_LIBDECOR_H #ifdef HAVE_LIBDECOR_H
libdecor_dispatch(d->shell.libdecor, timeout); if (d->shell.libdecor) {
libdecor_dispatch(d->shell.libdecor, timeout);
}
#endif #endif
/* wl_display_prepare_read() will return -1 if the default queue is not empty. /* wl_display_prepare_read() will return -1 if the default queue is not empty.