mirror of
				https://github.com/libsdl-org/SDL.git
				synced 2025-11-04 09:44:35 +00:00 
			
		
		
		
	Fixed bug 4085 - X11: Allow configuring _NET_WM_BYPASS_COMPOSITOR through SDL hints
Callum McGing This patch allows the user to disable the behaviour that blocks the compositor through a new hint: SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR. This allows tools or other windowed applications to behave properly under KWin.
This commit is contained in:
		@@ -211,6 +211,18 @@ extern "C" {
 | 
			
		||||
 */
 | 
			
		||||
#define SDL_HINT_VIDEO_X11_NET_WM_PING      "SDL_VIDEO_X11_NET_WM_PING"
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief A variable controlling whether the X11 _NET_WM_BYPASS_COMPOSITOR hint should be used.
 | 
			
		||||
 * 
 | 
			
		||||
 * This variable can be set to the following values:
 | 
			
		||||
 * "0" - Disable _NET_WM_BYPASS_COMPOSITOR
 | 
			
		||||
 * "1" - Enable _NET_WM_BYPASS_COMPOSITOR
 | 
			
		||||
 * 
 | 
			
		||||
 * By default SDL will use _NET_WM_BYPASS_COMPOSITOR
 | 
			
		||||
 * 
 | 
			
		||||
 */
 | 
			
		||||
#define SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR"
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *  \brief  A variable controlling whether the window frame and title bar are interactive when the cursor is hidden 
 | 
			
		||||
 *
 | 
			
		||||
 
 | 
			
		||||
@@ -579,11 +579,12 @@ X11_CreateWindow(_THIS, SDL_Window * window)
 | 
			
		||||
    wintype = X11_XInternAtom(display, wintype_name, False);
 | 
			
		||||
    X11_XChangeProperty(display, w, _NET_WM_WINDOW_TYPE, XA_ATOM, 32,
 | 
			
		||||
                    PropModeReplace, (unsigned char *)&wintype, 1);
 | 
			
		||||
 | 
			
		||||
    if (SDL_GetHintBoolean(SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR, SDL_TRUE)) {
 | 
			
		||||
        _NET_WM_BYPASS_COMPOSITOR = X11_XInternAtom(display, "_NET_WM_BYPASS_COMPOSITOR", False);
 | 
			
		||||
        X11_XChangeProperty(display, w, _NET_WM_BYPASS_COMPOSITOR, XA_CARDINAL, 32,
 | 
			
		||||
                        PropModeReplace,
 | 
			
		||||
                        (unsigned char *)&compositor, 1);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
        Atom protocols[3];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user