Clarified WM_PROTOCOLS event handling.

master
Camilla Berglund ago%!(EXTRA string=10 years)
parent 9f0e359d73
commit e6cc3c4752
  1. 11
      src/x11_window.c

@ -1117,16 +1117,17 @@ static void processEvent(XEvent *event)
if (event->xclient.message_type == _glfw.x11.WM_PROTOCOLS) if (event->xclient.message_type == _glfw.x11.WM_PROTOCOLS)
{ {
if (_glfw.x11.WM_DELETE_WINDOW && const Atom protocol = event->xclient.data.l[0];
(Atom) event->xclient.data.l[0] == _glfw.x11.WM_DELETE_WINDOW) if (protocol == None)
break;
if (protocol == _glfw.x11.WM_DELETE_WINDOW)
{ {
// The window manager was asked to close the window, for example by // The window manager was asked to close the window, for example by
// the user pressing a 'close' window decoration button // the user pressing a 'close' window decoration button
_glfwInputWindowCloseRequest(window); _glfwInputWindowCloseRequest(window);
} }
else if (_glfw.x11.NET_WM_PING && else if (protocol == _glfw.x11.NET_WM_PING)
(Atom) event->xclient.data.l[0] == _glfw.x11.NET_WM_PING)
{ {
// The window manager is pinging the application to ensure it's // The window manager is pinging the application to ensure it's
// still responding to events // still responding to events

Loading…
Cancel
Save