Update attention request on X11 and update example

The macro ```_NET_WM_STATE_ADD``` is passed to
```xev.xclient.data.l[0]```, instead of a constant `1`.

The example ```simple.c``` was update to make a attention request every
10 seconds.
This commit is contained in:
Felipe Ferreira da Silva 2017-04-06 19:46:53 -03:00
parent 301a84c4f5
commit aaebcc5141
3 changed files with 13 additions and 1 deletions

View File

@ -79,6 +79,7 @@ int main(void)
GLFWwindow* window;
GLuint vertex_buffer, vertex_shader, fragment_shader, program;
GLint mvp_location, vpos_location, vcol_location;
double start;
glfwSetErrorCallback(error_callback);
@ -131,12 +132,18 @@ int main(void)
glVertexAttribPointer(vcol_location, 3, GL_FLOAT, GL_FALSE,
sizeof(vertices[0]), (void*) (sizeof(float) * 2));
start = glfwGetTime();
while (!glfwWindowShouldClose(window))
{
float ratio;
int width, height;
mat4x4 m, p, mvp;
if (glfwGetTime() - start > 10.0) {
glfwRequestWindowAttention(window);
start = glfwGetTime();
}
glfwGetFramebufferSize(window, &width, &height);
ratio = width / (float) height;

View File

@ -172,6 +172,11 @@ void _glfwPlatformShowWindow(_GLFWwindow* window)
{
}
void _glfwPlatformRequestWindowAttention(_GLFWwindow* window)
{
}
void _glfwPlatformUnhideWindow(_GLFWwindow* window)
{
}

View File

@ -2084,7 +2084,7 @@ void _glfwPlatformRequestWindowAttention(_GLFWwindow* window)
xev.xclient.window = window->x11.handle;
xev.xclient.message_type = wm_state;
xev.xclient.format = 32;
xev.xclient.data.l[0] = 1; /* _NET_WM_STATE_ADD */
xev.xclient.data.l[0] = _NET_WM_STATE_ADD;
xev.xclient.data.l[1] = wm_attention;
XSendEvent(_glfw.x11.display, DefaultRootWindow(_glfw.x11.display), False, SubstructureRedirectMask | SubstructureNotifyMask, &xev);