mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-03-20 15:51:07 +01:00
Don't load libdecor if SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR is false
Fixes https://github.com/libsdl-org/SDL/issues/14887
This commit is contained in:
@@ -71,23 +71,25 @@ typedef struct
|
||||
{
|
||||
SDL_SharedObject *lib;
|
||||
const char *libname;
|
||||
const char *hint;
|
||||
bool hint_default;
|
||||
} waylanddynlib;
|
||||
|
||||
static waylanddynlib waylandlibs[] = {
|
||||
{ NULL, SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC },
|
||||
{ NULL, SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC, NULL, false },
|
||||
#ifdef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL
|
||||
{ NULL, SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL },
|
||||
{ NULL, SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL, NULL, false },
|
||||
#endif
|
||||
#ifdef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR
|
||||
{ NULL, SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR },
|
||||
{ NULL, SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR, NULL, false },
|
||||
#endif
|
||||
#ifdef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON
|
||||
{ NULL, SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON },
|
||||
{ NULL, SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON, NULL, false },
|
||||
#endif
|
||||
#ifdef SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_LIBDECOR
|
||||
{ NULL, SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_LIBDECOR },
|
||||
{ NULL, SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_LIBDECOR, SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR, true },
|
||||
#endif
|
||||
{ NULL, NULL }
|
||||
{ NULL, NULL, NULL, false }
|
||||
};
|
||||
|
||||
static void *WAYLAND_GetSym(const char *fnname, int *pHasModule, bool required)
|
||||
@@ -173,6 +175,10 @@ bool SDL_WAYLAND_LoadSymbols(void)
|
||||
int *thismod = NULL;
|
||||
for (i = 0; i < SDL_arraysize(waylandlibs); i++) {
|
||||
if (waylandlibs[i].libname) {
|
||||
if (waylandlibs[i].hint &&
|
||||
!SDL_GetHintBoolean(waylandlibs[i].hint, waylandlibs[i].hint_default)) {
|
||||
continue;
|
||||
}
|
||||
waylandlibs[i].lib = SDL_LoadObject(waylandlibs[i].libname);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1397,10 +1397,6 @@ static bool should_use_libdecor(SDL_VideoData *data, bool ignore_xdg)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!SDL_GetHintBoolean(SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR, true)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (SDL_GetHintBoolean(SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR, false)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user