|
|
|
@ -613,46 +613,40 @@ static GLFWbool createNativeWindow(_GLFWwindow* window, |
|
|
|
|
|
|
|
|
|
window->x11.transparent = _glfwIsVisualTransparentX11(visual); |
|
|
|
|
|
|
|
|
|
// Create the actual window
|
|
|
|
|
{ |
|
|
|
|
XSetWindowAttributes wa; |
|
|
|
|
const unsigned long wamask = CWBorderPixel | CWColormap | CWEventMask; |
|
|
|
|
|
|
|
|
|
wa.colormap = window->x11.colormap; |
|
|
|
|
wa.border_pixel = 0; |
|
|
|
|
wa.event_mask = StructureNotifyMask | KeyPressMask | KeyReleaseMask | |
|
|
|
|
PointerMotionMask | ButtonPressMask | ButtonReleaseMask | |
|
|
|
|
ExposureMask | FocusChangeMask | VisibilityChangeMask | |
|
|
|
|
EnterWindowMask | LeaveWindowMask | PropertyChangeMask; |
|
|
|
|
|
|
|
|
|
_glfwGrabErrorHandlerX11(); |
|
|
|
|
|
|
|
|
|
window->x11.handle = XCreateWindow(_glfw.x11.display, |
|
|
|
|
_glfw.x11.root, |
|
|
|
|
0, 0, |
|
|
|
|
width, height, |
|
|
|
|
0, // Border width
|
|
|
|
|
depth, // Color depth
|
|
|
|
|
InputOutput, |
|
|
|
|
visual, |
|
|
|
|
wamask, |
|
|
|
|
&wa); |
|
|
|
|
|
|
|
|
|
_glfwReleaseErrorHandlerX11(); |
|
|
|
|
|
|
|
|
|
if (!window->x11.handle) |
|
|
|
|
{ |
|
|
|
|
_glfwInputErrorX11(GLFW_PLATFORM_ERROR, |
|
|
|
|
"X11: Failed to create window"); |
|
|
|
|
return GLFW_FALSE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
XSaveContext(_glfw.x11.display, |
|
|
|
|
window->x11.handle, |
|
|
|
|
_glfw.x11.context, |
|
|
|
|
(XPointer) window); |
|
|
|
|
XSetWindowAttributes wa = { 0 }; |
|
|
|
|
wa.colormap = window->x11.colormap; |
|
|
|
|
wa.event_mask = StructureNotifyMask | KeyPressMask | KeyReleaseMask | |
|
|
|
|
PointerMotionMask | ButtonPressMask | ButtonReleaseMask | |
|
|
|
|
ExposureMask | FocusChangeMask | VisibilityChangeMask | |
|
|
|
|
EnterWindowMask | LeaveWindowMask | PropertyChangeMask; |
|
|
|
|
|
|
|
|
|
_glfwGrabErrorHandlerX11(); |
|
|
|
|
|
|
|
|
|
window->x11.handle = XCreateWindow(_glfw.x11.display, |
|
|
|
|
_glfw.x11.root, |
|
|
|
|
0, 0, // Position
|
|
|
|
|
width, height, |
|
|
|
|
0, // Border width
|
|
|
|
|
depth, // Color depth
|
|
|
|
|
InputOutput, |
|
|
|
|
visual, |
|
|
|
|
CWBorderPixel | CWColormap | CWEventMask, |
|
|
|
|
&wa); |
|
|
|
|
|
|
|
|
|
_glfwReleaseErrorHandlerX11(); |
|
|
|
|
|
|
|
|
|
if (!window->x11.handle) |
|
|
|
|
{ |
|
|
|
|
_glfwInputErrorX11(GLFW_PLATFORM_ERROR, |
|
|
|
|
"X11: Failed to create window"); |
|
|
|
|
return GLFW_FALSE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
XSaveContext(_glfw.x11.display, |
|
|
|
|
window->x11.handle, |
|
|
|
|
_glfw.x11.context, |
|
|
|
|
(XPointer) window); |
|
|
|
|
|
|
|
|
|
if (!wndconfig->decorated) |
|
|
|
|
_glfwPlatformSetWindowDecorated(window, GLFW_FALSE); |
|
|
|
|
|
|
|
|
|