SDL-1.2: video/x11/SDL_x11video.c: add XInitThreads to X11_CreateDevice.

From 4c3097466bdf254a262ab7ffb72633992a892801 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Wed, 13 Apr 2022 17:33:40 +0300
Subject: [PATCH] video/x11/SDL_x11video.c: add XInitThreads to
 X11_CreateDevice.

Fixes: https://bugzilla.libsdl.org/show_bug.cgi?id=2843
       https://github.com/libsdl-org/SDL-1.2/issues/753
Also see SDL2 commit:
https://github.com/libsdl-org/SDL/commit/635ebd967b7a8141e1022ed5c6b462df906f5c3a
---
 src/video/x11/SDL_x11sym.h   | 1 +
 src/video/x11/SDL_x11video.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/src/video/x11/SDL_x11sym.h b/src/video/x11/SDL_x11sym.h
index bd83f7f5c..bc54b963f 100644
--- a/src/video/x11/SDL_x11sym.h
+++ b/src/video/x11/SDL_x11sym.h
@@ -76,6 +76,7 @@ SDL_X11_SYM(int,XMoveResizeWindow,(Display* a,Window b,int c,int d,unsigned int
 SDL_X11_SYM(int,XMoveWindow,(Display* a,Window b,int c,int d),(a,b,c,d),return)
 SDL_X11_SYM(int,XNextEvent,(Display* a,XEvent* b),(a,b),return)
 SDL_X11_SYM(Display*,XOpenDisplay,(_Xconst char* a),(a),return)
+SDL_X11_SYM(Status,XInitThreads,(void),(),return)
 SDL_X11_SYM(int,XPeekEvent,(Display* a,XEvent* b),(a,b),return)
 SDL_X11_SYM(int,XPending,(Display* a),(a),return)
 SDL_X11_SYM(int,XPutImage,(Display* a,Drawable b,GC c,XImage* d,int e,int f,int g,int h,unsigned int i,unsigned int j),(a,b,c,d,e,f,g,h,i,j),return)
diff --git a/src/video/x11/SDL_x11video.c b/src/video/x11/SDL_x11video.c
index bbf0d5d0f..b4f9f1b62 100644
--- a/src/video/x11/SDL_x11video.c
+++ b/src/video/x11/SDL_x11video.c
@@ -103,6 +103,7 @@ static SDL_VideoDevice *X11_CreateDevice(int devindex)
 	SDL_VideoDevice *device = NULL;
 
 	if ( SDL_X11_LoadSymbols() ) {
+		XInitThreads();
 		/* Initialize all variables that we clean on shutdown */
 		device = (SDL_VideoDevice *)SDL_malloc(sizeof(SDL_VideoDevice));
 		if ( device ) {