mirror of
https://github.com/gwm17/glfw.git
synced 2024-11-26 12:18:51 -05:00
Wayland: Rename fallback decoration functions
We are soon going to have three kinds of decorations; XDG, libdecor and our last resort fallback ones.
This commit is contained in:
parent
0cd1916de3
commit
eb9c3bee71
|
@ -192,11 +192,11 @@ static struct wl_buffer* createShmBuffer(const GLFWimage* image)
|
||||||
return buffer;
|
return buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void createDecoration(_GLFWdecorationWayland* decoration,
|
static void createFallbackDecoration(_GLFWdecorationWayland* decoration,
|
||||||
struct wl_surface* parent,
|
struct wl_surface* parent,
|
||||||
struct wl_buffer* buffer,
|
struct wl_buffer* buffer,
|
||||||
int x, int y,
|
int x, int y,
|
||||||
int width, int height)
|
int width, int height)
|
||||||
{
|
{
|
||||||
decoration->surface = wl_compositor_create_surface(_glfw.wl.compositor);
|
decoration->surface = wl_compositor_create_surface(_glfw.wl.compositor);
|
||||||
decoration->subsurface =
|
decoration->subsurface =
|
||||||
|
@ -215,7 +215,7 @@ static void createDecoration(_GLFWdecorationWayland* decoration,
|
||||||
wl_region_destroy(region);
|
wl_region_destroy(region);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void createDecorations(_GLFWwindow* window)
|
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 };
|
||||||
|
@ -228,25 +228,25 @@ static void createDecorations(_GLFWwindow* window)
|
||||||
if (!window->wl.decorations.buffer)
|
if (!window->wl.decorations.buffer)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
createDecoration(&window->wl.decorations.top, window->wl.surface,
|
createFallbackDecoration(&window->wl.decorations.top, window->wl.surface,
|
||||||
window->wl.decorations.buffer,
|
window->wl.decorations.buffer,
|
||||||
0, -GLFW_CAPTION_HEIGHT,
|
0, -GLFW_CAPTION_HEIGHT,
|
||||||
window->wl.width, GLFW_CAPTION_HEIGHT);
|
window->wl.width, GLFW_CAPTION_HEIGHT);
|
||||||
createDecoration(&window->wl.decorations.left, window->wl.surface,
|
createFallbackDecoration(&window->wl.decorations.left, window->wl.surface,
|
||||||
window->wl.decorations.buffer,
|
window->wl.decorations.buffer,
|
||||||
-GLFW_BORDER_SIZE, -GLFW_CAPTION_HEIGHT,
|
-GLFW_BORDER_SIZE, -GLFW_CAPTION_HEIGHT,
|
||||||
GLFW_BORDER_SIZE, window->wl.height + GLFW_CAPTION_HEIGHT);
|
GLFW_BORDER_SIZE, window->wl.height + GLFW_CAPTION_HEIGHT);
|
||||||
createDecoration(&window->wl.decorations.right, window->wl.surface,
|
createFallbackDecoration(&window->wl.decorations.right, window->wl.surface,
|
||||||
window->wl.decorations.buffer,
|
window->wl.decorations.buffer,
|
||||||
window->wl.width, -GLFW_CAPTION_HEIGHT,
|
window->wl.width, -GLFW_CAPTION_HEIGHT,
|
||||||
GLFW_BORDER_SIZE, window->wl.height + GLFW_CAPTION_HEIGHT);
|
GLFW_BORDER_SIZE, window->wl.height + GLFW_CAPTION_HEIGHT);
|
||||||
createDecoration(&window->wl.decorations.bottom, window->wl.surface,
|
createFallbackDecoration(&window->wl.decorations.bottom, window->wl.surface,
|
||||||
window->wl.decorations.buffer,
|
window->wl.decorations.buffer,
|
||||||
-GLFW_BORDER_SIZE, window->wl.height,
|
-GLFW_BORDER_SIZE, window->wl.height,
|
||||||
window->wl.width + GLFW_BORDER_SIZE * 2, GLFW_BORDER_SIZE);
|
window->wl.width + GLFW_BORDER_SIZE * 2, GLFW_BORDER_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void destroyDecoration(_GLFWdecorationWayland* decoration)
|
static void destroyFallbackDecoration(_GLFWdecorationWayland* decoration)
|
||||||
{
|
{
|
||||||
if (decoration->subsurface)
|
if (decoration->subsurface)
|
||||||
wl_subsurface_destroy(decoration->subsurface);
|
wl_subsurface_destroy(decoration->subsurface);
|
||||||
|
@ -259,12 +259,12 @@ static void destroyDecoration(_GLFWdecorationWayland* decoration)
|
||||||
decoration->viewport = NULL;
|
decoration->viewport = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void destroyDecorations(_GLFWwindow* window)
|
static void destroyFallbackDecorations(_GLFWwindow* window)
|
||||||
{
|
{
|
||||||
destroyDecoration(&window->wl.decorations.top);
|
destroyFallbackDecoration(&window->wl.decorations.top);
|
||||||
destroyDecoration(&window->wl.decorations.left);
|
destroyFallbackDecoration(&window->wl.decorations.left);
|
||||||
destroyDecoration(&window->wl.decorations.right);
|
destroyFallbackDecoration(&window->wl.decorations.right);
|
||||||
destroyDecoration(&window->wl.decorations.bottom);
|
destroyFallbackDecoration(&window->wl.decorations.bottom);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xdgDecorationHandleConfigure(void* userData,
|
static void xdgDecorationHandleConfigure(void* userData,
|
||||||
|
@ -276,7 +276,7 @@ static void xdgDecorationHandleConfigure(void* userData,
|
||||||
window->wl.decorations.serverSide = (mode == ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE);
|
window->wl.decorations.serverSide = (mode == ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE);
|
||||||
|
|
||||||
if (!window->wl.decorations.serverSide)
|
if (!window->wl.decorations.serverSide)
|
||||||
createDecorations(window);
|
createFallbackDecorations(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct zxdg_toplevel_decoration_v1_listener xdgDecorationListener =
|
static const struct zxdg_toplevel_decoration_v1_listener xdgDecorationListener =
|
||||||
|
@ -432,7 +432,7 @@ static void acquireMonitor(_GLFWwindow* window)
|
||||||
setIdleInhibitor(window, GLFW_TRUE);
|
setIdleInhibitor(window, GLFW_TRUE);
|
||||||
|
|
||||||
if (!window->wl.decorations.serverSide)
|
if (!window->wl.decorations.serverSide)
|
||||||
destroyDecorations(window);
|
destroyFallbackDecorations(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove the window and restore the original video mode
|
// Remove the window and restore the original video mode
|
||||||
|
@ -445,7 +445,7 @@ static void releaseMonitor(_GLFWwindow* window)
|
||||||
setIdleInhibitor(window, GLFW_FALSE);
|
setIdleInhibitor(window, GLFW_FALSE);
|
||||||
|
|
||||||
if (!_glfw.wl.decorationManager)
|
if (!_glfw.wl.decorationManager)
|
||||||
createDecorations(window);
|
createFallbackDecorations(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xdgToplevelHandleConfigure(void* userData,
|
static void xdgToplevelHandleConfigure(void* userData,
|
||||||
|
@ -629,7 +629,7 @@ static GLFWbool createXdgSurface(_GLFWwindow* window)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
window->wl.decorations.serverSide = GLFW_FALSE;
|
window->wl.decorations.serverSide = GLFW_FALSE;
|
||||||
createDecorations(window);
|
createFallbackDecorations(window);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1818,7 +1818,7 @@ void _glfwDestroyWindowWayland(_GLFWwindow* window)
|
||||||
if (window->context.destroy)
|
if (window->context.destroy)
|
||||||
window->context.destroy(window);
|
window->context.destroy(window);
|
||||||
|
|
||||||
destroyDecorations(window);
|
destroyFallbackDecorations(window);
|
||||||
if (window->wl.xdg.decoration)
|
if (window->wl.xdg.decoration)
|
||||||
zxdg_toplevel_decoration_v1_destroy(window->wl.xdg.decoration);
|
zxdg_toplevel_decoration_v1_destroy(window->wl.xdg.decoration);
|
||||||
|
|
||||||
|
@ -2136,9 +2136,9 @@ void _glfwSetWindowDecoratedWayland(_GLFWwindow* window, GLFWbool enabled)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (enabled)
|
if (enabled)
|
||||||
createDecorations(window);
|
createFallbackDecorations(window);
|
||||||
else
|
else
|
||||||
destroyDecorations(window);
|
destroyFallbackDecorations(window);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user