Add back tracking of X11 override-redirect

This commit is contained in:
Camilla Berglund 2016-02-28 16:05:02 +01:00
parent 73216e5fb1
commit e51e27fcab
2 changed files with 6 additions and 2 deletions

View File

@ -116,6 +116,8 @@ typedef struct _GLFWwindowX11
Window handle; Window handle;
XIC ic; XIC ic;
GLFWbool overrideRedirect;
// Cached position and size used to filter out duplicate events // Cached position and size used to filter out duplicate events
int width, height; int width, height;
int xpos, ypos; int xpos, ypos;

View File

@ -318,6 +318,8 @@ static GLFWbool createWindow(_GLFWwindow* window,
window->x11.handle, window->x11.handle,
CWOverrideRedirect, CWOverrideRedirect,
&attributes); &attributes);
window->x11.overrideRedirect = GLFW_TRUE;
} }
} }
else else
@ -1737,7 +1739,7 @@ void _glfwPlatformGetWindowFrameSize(_GLFWwindow* window,
void _glfwPlatformIconifyWindow(_GLFWwindow* window) void _glfwPlatformIconifyWindow(_GLFWwindow* window)
{ {
if (!_glfw.x11.NET_WM_STATE || !_glfw.x11.NET_WM_STATE_FULLSCREEN) if (window->x11.overrideRedirect)
{ {
// Override-redirect windows cannot be iconified or restored, as those // Override-redirect windows cannot be iconified or restored, as those
// tasks are performed by the window manager // tasks are performed by the window manager
@ -1752,7 +1754,7 @@ void _glfwPlatformIconifyWindow(_GLFWwindow* window)
void _glfwPlatformRestoreWindow(_GLFWwindow* window) void _glfwPlatformRestoreWindow(_GLFWwindow* window)
{ {
if (!_glfw.x11.NET_WM_STATE || !_glfw.x11.NET_WM_STATE_FULLSCREEN) if (window->x11.overrideRedirect)
{ {
// Override-redirect windows cannot be iconified or restored, as those // Override-redirect windows cannot be iconified or restored, as those
// tasks are performed by the window manager // tasks are performed by the window manager