diff --git a/src/x11_init.c b/src/x11_init.c index 8950b4ca..04b1b104 100644 --- a/src/x11_init.c +++ b/src/x11_init.c @@ -440,22 +440,22 @@ static void detectEWMH(void) // See which of the atoms we support that are supported by the WM - _glfw.x11.wmState = + _glfw.x11.NET_WM_STATE = getSupportedAtom(supportedAtoms, atomCount, "_NET_WM_STATE"); - _glfw.x11.wmStateFullscreen = + _glfw.x11.NET_WM_STATE_FULLSCREEN = getSupportedAtom(supportedAtoms, atomCount, "_NET_WM_STATE_FULLSCREEN"); - _glfw.x11.wmName = + _glfw.x11.NET_WM_NAME = getSupportedAtom(supportedAtoms, atomCount, "_NET_WM_NAME"); - _glfw.x11.wmIconName = + _glfw.x11.NET_WM_ICON_NAME = getSupportedAtom(supportedAtoms, atomCount, "_NET_WM_ICON_NAME"); - _glfw.x11.wmPing = + _glfw.x11.NET_WM_PING = getSupportedAtom(supportedAtoms, atomCount, "_NET_WM_PING"); - _glfw.x11.wmActiveWindow = + _glfw.x11.NET_ACTIVE_WINDOW = getSupportedAtom(supportedAtoms, atomCount, "_NET_ACTIVE_WINDOW"); XFree(supportedAtoms); @@ -485,9 +485,9 @@ static GLboolean initDisplay(void) _glfw.x11.root = RootWindow(_glfw.x11.display, _glfw.x11.screen); // Find or create the protocol atom for window close notifications - _glfw.x11.wmDeleteWindow = XInternAtom(_glfw.x11.display, - "WM_DELETE_WINDOW", - False); + _glfw.x11.WM_DELETE_WINDOW = XInternAtom(_glfw.x11.display, + "WM_DELETE_WINDOW", + False); // Check for XF86VidMode extension _glfw.x11.vidmode.available = diff --git a/src/x11_platform.h b/src/x11_platform.h index 5472f1fe..2d671a92 100644 --- a/src/x11_platform.h +++ b/src/x11_platform.h @@ -122,13 +122,14 @@ typedef struct _GLFWlibraryX11 // Invisible cursor for hidden cursor mode Cursor cursor; - Atom wmDeleteWindow; // WM_DELETE_WINDOW atom - Atom wmName; // _NET_WM_NAME atom - Atom wmIconName; // _NET_WM_ICON_NAME atom - Atom wmPing; // _NET_WM_PING atom - Atom wmState; // _NET_WM_STATE atom - Atom wmStateFullscreen; // _NET_WM_STATE_FULLSCREEN atom - Atom wmActiveWindow; // _NET_ACTIVE_WINDOW atom + // Window manager atoms + Atom WM_DELETE_WINDOW; + Atom NET_WM_NAME; + Atom NET_WM_ICON_NAME; + Atom NET_WM_PING; + Atom NET_WM_STATE; + Atom NET_WM_STATE_FULLSCREEN; + Atom NET_ACTIVE_WINDOW; // True if window manager supports EWMH GLboolean hasEWMH; diff --git a/src/x11_window.c b/src/x11_window.c index 8e564f9a..4599797a 100644 --- a/src/x11_window.c +++ b/src/x11_window.c @@ -171,14 +171,14 @@ static GLboolean createWindow(_GLFWwindow* window, // The WM_DELETE_WINDOW ICCCM protocol // Basic window close notification protocol - if (_glfw.x11.wmDeleteWindow != None) - protocols[count++] = _glfw.x11.wmDeleteWindow; + if (_glfw.x11.WM_DELETE_WINDOW != None) + protocols[count++] = _glfw.x11.WM_DELETE_WINDOW; // The _NET_WM_PING EWMH protocol // Tells the WM to ping the GLFW window and flag the application as // unresponsive if the WM doesn't get a reply within a few seconds - if (_glfw.x11.wmPing != None) - protocols[count++] = _glfw.x11.wmPing; + if (_glfw.x11.NET_WM_PING != None) + protocols[count++] = _glfw.x11.NET_WM_PING; if (count > 0) { @@ -335,10 +335,10 @@ static void enterFullscreenMode(_GLFWwindow* window) _glfwSetVideoMode(window->monitor, &window->width, &window->height); if (_glfw.x11.hasEWMH && - _glfw.x11.wmState != None && - _glfw.x11.wmStateFullscreen != None) + _glfw.x11.NET_WM_STATE != None && + _glfw.x11.NET_WM_STATE_FULLSCREEN != None) { - if (_glfw.x11.wmActiveWindow != None) + if (_glfw.x11.NET_ACTIVE_WINDOW != None) { // Ask the window manager to raise and focus the GLFW window // Only focused windows with the _NET_WM_STATE_FULLSCREEN state end @@ -350,7 +350,7 @@ static void enterFullscreenMode(_GLFWwindow* window) event.type = ClientMessage; event.xclient.window = window->x11.handle; event.xclient.format = 32; // Data is 32-bit longs - event.xclient.message_type = _glfw.x11.wmActiveWindow; + event.xclient.message_type = _glfw.x11.NET_ACTIVE_WINDOW; event.xclient.data.l[0] = 1; // Sender is a normal application event.xclient.data.l[1] = 0; // We don't really know the timestamp @@ -371,9 +371,9 @@ static void enterFullscreenMode(_GLFWwindow* window) event.type = ClientMessage; event.xclient.window = window->x11.handle; event.xclient.format = 32; // Data is 32-bit longs - event.xclient.message_type = _glfw.x11.wmState; + event.xclient.message_type = _glfw.x11.NET_WM_STATE; event.xclient.data.l[0] = _NET_WM_STATE_ADD; - event.xclient.data.l[1] = _glfw.x11.wmStateFullscreen; + event.xclient.data.l[1] = _glfw.x11.NET_WM_STATE_FULLSCREEN; event.xclient.data.l[2] = 0; // No secondary property event.xclient.data.l[3] = 1; // Sender is a normal application @@ -419,8 +419,8 @@ static void leaveFullscreenMode(_GLFWwindow* window) } if (_glfw.x11.hasEWMH && - _glfw.x11.wmState != None && - _glfw.x11.wmStateFullscreen != None) + _glfw.x11.NET_WM_STATE != None && + _glfw.x11.NET_WM_STATE_FULLSCREEN != None) { // Ask the window manager to make the GLFW window a normal window // Normal windows usually have frames and other decorations @@ -431,9 +431,9 @@ static void leaveFullscreenMode(_GLFWwindow* window) event.type = ClientMessage; event.xclient.window = window->x11.handle; event.xclient.format = 32; // Data is 32-bit longs - event.xclient.message_type = _glfw.x11.wmState; + event.xclient.message_type = _glfw.x11.NET_WM_STATE; event.xclient.data.l[0] = _NET_WM_STATE_REMOVE; - event.xclient.data.l[1] = _glfw.x11.wmStateFullscreen; + event.xclient.data.l[1] = _glfw.x11.NET_WM_STATE_FULLSCREEN; event.xclient.data.l[2] = 0; // No secondary property event.xclient.data.l[3] = 1; // Sender is a normal application @@ -635,15 +635,15 @@ static void processEvent(XEvent *event) if (window == NULL) return; - if ((Atom) event->xclient.data.l[0] == _glfw.x11.wmDeleteWindow) + if ((Atom) event->xclient.data.l[0] == _glfw.x11.WM_DELETE_WINDOW) { // The window manager was asked to close the window, for example by // the user pressing a 'close' window decoration button _glfwInputWindowCloseRequest(window); } - else if (_glfw.x11.wmPing != None && - (Atom) event->xclient.data.l[0] == _glfw.x11.wmPing) + else if (_glfw.x11.NET_WM_PING != None && + (Atom) event->xclient.data.l[0] == _glfw.x11.NET_WM_PING) { // The window manager is pinging the application to ensure it's // still responding to events @@ -884,18 +884,18 @@ void _glfwPlatformSetWindowTitle(_GLFWwindow* window, const char* title) NULL, NULL, NULL); #endif - if (_glfw.x11.wmName != None) + if (_glfw.x11.NET_WM_NAME != None) { XChangeProperty(_glfw.x11.display, window->x11.handle, - _glfw.x11.wmName, type, 8, + _glfw.x11.NET_WM_NAME, type, 8, PropModeReplace, (unsigned char*) title, strlen(title)); } - if (_glfw.x11.wmIconName != None) + if (_glfw.x11.NET_WM_ICON_NAME != None) { XChangeProperty(_glfw.x11.display, window->x11.handle, - _glfw.x11.wmIconName, type, 8, + _glfw.x11.NET_WM_ICON_NAME, type, 8, PropModeReplace, (unsigned char*) title, strlen(title)); }