Wayland: Make function behavior match name

The logic that checks the decorated attribute belongs on the outside
along with other related checks (fullscreen, monitor, decoration mode).

(cherry picked from commit c4fbe80d90)
This commit is contained in:
Camilla Löwy 2022-06-21 19:37:35 +02:00
parent 1ac6fbc499
commit 758d4b1987

View File

@ -262,7 +262,7 @@ static void createFallbackDecorations(_GLFWwindow* window)
unsigned char data[] = { 224, 224, 224, 255 }; unsigned char data[] = { 224, 224, 224, 255 };
const GLFWimage image = { 1, 1, data }; const GLFWimage image = { 1, 1, data };
if (!_glfw.wl.viewporter || !window->decorated) if (!_glfw.wl.viewporter)
return; return;
if (!window->wl.decorations.buffer) if (!window->wl.decorations.buffer)
@ -318,7 +318,10 @@ static void xdgDecorationHandleConfigure(void* userData,
window->wl.xdg.decorationMode = mode; window->wl.xdg.decorationMode = mode;
if (mode == ZXDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE) if (mode == ZXDG_TOPLEVEL_DECORATION_V1_MODE_CLIENT_SIDE)
{
if (window->decorated)
createFallbackDecorations(window); createFallbackDecorations(window);
}
else else
destroyFallbackDecorations(window); destroyFallbackDecorations(window);
} }
@ -489,8 +492,11 @@ static void releaseMonitor(_GLFWwindow* window)
setIdleInhibitor(window, GLFW_FALSE); setIdleInhibitor(window, GLFW_FALSE);
if (window->wl.xdg.decorationMode != ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE) if (window->wl.xdg.decorationMode != ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE)
{
if (window->decorated)
createFallbackDecorations(window); createFallbackDecorations(window);
} }
}
static void xdgToplevelHandleConfigure(void* userData, static void xdgToplevelHandleConfigure(void* userData,
struct xdg_toplevel* toplevel, struct xdg_toplevel* toplevel,
@ -690,8 +696,11 @@ static GLFWbool createShellObjects(_GLFWwindow* window)
zxdg_toplevel_decoration_v1_set_mode(window->wl.xdg.decoration, mode); zxdg_toplevel_decoration_v1_set_mode(window->wl.xdg.decoration, mode);
} }
else else
{
if (window->decorated)
createFallbackDecorations(window); createFallbackDecorations(window);
} }
}
if (window->minwidth != GLFW_DONT_CARE && window->minheight != GLFW_DONT_CARE) if (window->minwidth != GLFW_DONT_CARE && window->minheight != GLFW_DONT_CARE)
{ {