|  | @@ -42,14 +42,19 @@ SlopSelection SlopSelect( SlopOptions* options, bool* cancelled ) {
 | 
	
		
			
			| 42 | 42 |      // Set up x11 temporarily
 | 
	
		
			
			| 43 | 43 |      x11 = new X11(options->xdisplay);
 | 
	
		
			
			| 44 | 44 |      keyboard = new Keyboard( x11 );
 | 
	
		
			
			| 45 |  | -    // First we try to make an OpenGL enabled window
 | 
	
		
			
			| 46 | 45 |      bool success = false;
 | 
	
		
			
			| 47 | 46 |      SlopWindow* window;
 | 
	
		
			
			| 48 |  | -    try {
 | 
	
		
			
			| 49 |  | -        window = new SlopWindow();
 | 
	
		
			
			| 50 |  | -        success = true;
 | 
	
		
			
			| 51 |  | -    } catch (...) {
 | 
	
		
			
			| 52 |  | -        success = false;
 | 
	
		
			
			|  | 47 | +    // First we check if we have a compositor available
 | 
	
		
			
			|  | 48 | +	if ( x11->hasCompositor() ) {
 | 
	
		
			
			|  | 49 | +        // If we have a compositor, we try using OpenGL
 | 
	
		
			
			|  | 50 | +        try {
 | 
	
		
			
			|  | 51 | +            window = new SlopWindow();
 | 
	
		
			
			|  | 52 | +            success = true;
 | 
	
		
			
			|  | 53 | +        } catch (...) {
 | 
	
		
			
			|  | 54 | +            success = false;
 | 
	
		
			
			|  | 55 | +        }
 | 
	
		
			
			|  | 56 | +    } else {
 | 
	
		
			
			|  | 57 | +        std::cerr << "Failed to detect a compositor, OpenGL hardware-accelleration disabled...\n";
 | 
	
		
			
			| 53 | 58 |      }
 | 
	
		
			
			| 54 | 59 |      if ( !success ) {
 | 
	
		
			
			| 55 | 60 |          // If we fail, we launch the XShape version of slop.
 |