X11: Include X Shape extension headers

Related to #1568.
This commit is contained in:
Camilla Löwy 2020-07-06 23:15:20 +02:00
parent e81d381256
commit 68e4261d73
4 changed files with 12 additions and 2 deletions

View File

@ -17,6 +17,7 @@ matrix:
- libxinerama-dev
- libxcursor-dev
- libxi-dev
- libxext-dev
env:
- BUILD_SHARED_LIBS=ON
- CFLAGS=-Werror
@ -30,6 +31,7 @@ matrix:
- libxinerama-dev
- libxcursor-dev
- libxi-dev
- libxext-dev
env:
- BUILD_SHARED_LIBS=OFF
- CFLAGS=-Werror

View File

@ -176,6 +176,11 @@ if (_GLFW_X11)
if (NOT X11_Xi_INCLUDE_PATH)
message(FATAL_ERROR "XInput headers not found; install libxi development package")
endif()
# Check for X Shape (custom window input shape)
if (NOT X11_Xshape_INCLUDE_PATH)
message(FATAL_ERROR "X Shape headers not found; install libxext development package")
endif()
endif()
#--------------------------------------------------------------------

View File

@ -48,6 +48,9 @@
// The XInput extension provides raw mouse motion input
#include <X11/extensions/XInput2.h>
// The Shape extension provides custom window shapes
#include <X11/extensions/shape.h>
typedef XClassHint* (* PFN_XAllocClassHint)(void);
typedef XSizeHints* (* PFN_XAllocSizeHints)(void);
typedef XWMHints* (* PFN_XAllocWMHints)(void);

View File

@ -2714,13 +2714,13 @@ void _glfwPlatformSetWindowMousePassthrough(_GLFWwindow* window, GLFWbool enable
{
Region region = XCreateRegion();
XShapeCombineRegion(_glfw.x11.display, window->x11.handle,
2/*ShapeInput*/, 0, 0, region, 0/*ShapeSet*/);
ShapeInput, 0, 0, region, ShapeSet);
XDestroyRegion(region);
}
else
{
XShapeCombineMask(_glfw.x11.display, window->x11.handle,
2/*ShapeInput*/, 0, 0, None, 0/*ShapeSet*/);
ShapeInput, 0, 0, None, ShapeSet);
}
window->mousePassthrough = enabled;