Make sure we have XShape symbols before we allow a shaped window.
authorRyan C. Gordon <icculus@icculus.org>
Tue, 13 Jul 2010 02:26:50 -0400
changeset 4791 e07cd9e86d7a
parent 4790 f0b0bdc07916
child 4792 aece2b6fb985
Make sure we have XShape symbols before we allow a shaped window.
src/video/x11/SDL_x11shape.c
--- a/src/video/x11/SDL_x11shape.c	Tue Jul 13 02:12:14 2010 -0400
+++ b/src/video/x11/SDL_x11shape.c	Tue Jul 13 02:26:50 2010 -0400
@@ -27,14 +27,18 @@
 #include "SDL_x11video.h"
 
 SDL_WindowShaper* X11_CreateShaper(SDL_Window* window) {
-	SDL_WindowShaper* result = malloc(sizeof(SDL_WindowShaper));
-	result->window = window;
-	result->alphacutoff = 0;
-	result->usershownflag = 0;
-	result->driverdata = malloc(sizeof(SDL_ShapeData));
-	window->shaper = result;
-	int resized_properly = X11_ResizeWindowShape(window);
-	assert(resized_properly == 0);
+	SDL_WindowShaper* result = NULL;
+	if (SDL_X11_HAVE_XSHAPE) {  /* Make sure X server supports it. */
+		result = malloc(sizeof(SDL_WindowShaper));
+		result->window = window;
+		result->alphacutoff = 0;
+		result->usershownflag = 0;
+		result->driverdata = malloc(sizeof(SDL_ShapeData));
+		window->shaper = result;
+		int resized_properly = X11_ResizeWindowShape(window);
+		assert(resized_properly == 0);
+	}
+
 	return result;
 }