@ -226,25 +226,25 @@ static void createFallbackDecorations(_GLFWwindow* window)
if ( ! _glfw . wl . viewporter )
return ;
if ( ! window - > wl . decorations . buffer )
window - > wl . decorations . buffer = createShmBuffer ( & image ) ;
if ( ! window - > wl . decorations . buffer )
if ( ! window - > wl . fallback . buffer )
window - > wl . fallback . buffer = createShmBuffer ( & image ) ;
if ( ! window - > wl . fallback . buffer )
return ;
createFallbackDecoration ( window , & window - > wl . decorations . top , window - > wl . surface ,
window - > wl . decorations . buffer ,
createFallbackDecoration ( window , & window - > wl . fallback . top , window - > wl . surface ,
window - > wl . fallback . buffer ,
0 , - GLFW_CAPTION_HEIGHT ,
window - > wl . width , GLFW_CAPTION_HEIGHT ) ;
createFallbackDecoration ( window , & window - > wl . decorations . left , window - > wl . surface ,
window - > wl . decorations . buffer ,
createFallbackDecoration ( window , & window - > wl . fallback . left , window - > wl . surface ,
window - > wl . fallback . buffer ,
- GLFW_BORDER_SIZE , - GLFW_CAPTION_HEIGHT ,
GLFW_BORDER_SIZE , window - > wl . height + GLFW_CAPTION_HEIGHT ) ;
createFallbackDecoration ( window , & window - > wl . decorations . right , window - > wl . surface ,
window - > wl . decorations . buffer ,
createFallbackDecoration ( window , & window - > wl . fallback . right , window - > wl . surface ,
window - > wl . fallback . buffer ,
window - > wl . width , - GLFW_CAPTION_HEIGHT ,
GLFW_BORDER_SIZE , window - > wl . height + GLFW_CAPTION_HEIGHT ) ;
createFallbackDecoration ( window , & window - > wl . decorations . bottom , window - > wl . surface ,
window - > wl . decorations . buffer ,
createFallbackDecoration ( window , & window - > wl . fallback . bottom , window - > wl . surface ,
window - > wl . fallback . buffer ,
- GLFW_BORDER_SIZE , window - > wl . height ,
window - > wl . width + GLFW_BORDER_SIZE * 2 , GLFW_BORDER_SIZE ) ;
}
@ -264,10 +264,10 @@ static void destroyFallbackDecoration(_GLFWdecorationWayland* decoration)
static void destroyFallbackDecorations ( _GLFWwindow * window )
{
destroyFallbackDecoration ( & window - > wl . decorations . top ) ;
destroyFallbackDecoration ( & window - > wl . decorations . left ) ;
destroyFallbackDecoration ( & window - > wl . decorations . right ) ;
destroyFallbackDecoration ( & window - > wl . decorations . bottom ) ;
destroyFallbackDecoration ( & window - > wl . fallback . top ) ;
destroyFallbackDecoration ( & window - > wl . fallback . left ) ;
destroyFallbackDecoration ( & window - > wl . fallback . right ) ;
destroyFallbackDecoration ( & window - > wl . fallback . bottom ) ;
}
static void xdgDecorationHandleConfigure ( void * userData ,
@ -325,28 +325,28 @@ static void resizeWindow(_GLFWwindow* window)
{
resizeFramebuffer ( window ) ;
if ( ! window - > wl . decorations . top . surface )
if ( ! window - > wl . fallback . top . surface )
return ;
wp_viewport_set_destination ( window - > wl . decorations . top . viewport ,
wp_viewport_set_destination ( window - > wl . fallback . top . viewport ,
window - > wl . width , GLFW_CAPTION_HEIGHT ) ;
wl_surface_commit ( window - > wl . decorations . top . surface ) ;
wl_surface_commit ( window - > wl . fallback . top . surface ) ;
wp_viewport_set_destination ( window - > wl . decorations . left . viewport ,
wp_viewport_set_destination ( window - > wl . fallback . left . viewport ,
GLFW_BORDER_SIZE , window - > wl . height + GLFW_CAPTION_HEIGHT ) ;
wl_surface_commit ( window - > wl . decorations . left . surface ) ;
wl_surface_commit ( window - > wl . fallback . left . surface ) ;
wl_subsurface_set_position ( window - > wl . decorations . right . subsurface ,
wl_subsurface_set_position ( window - > wl . fallback . right . subsurface ,
window - > wl . width , - GLFW_CAPTION_HEIGHT ) ;
wp_viewport_set_destination ( window - > wl . decorations . right . viewport ,
wp_viewport_set_destination ( window - > wl . fallback . right . viewport ,
GLFW_BORDER_SIZE , window - > wl . height + GLFW_CAPTION_HEIGHT ) ;
wl_surface_commit ( window - > wl . decorations . right . surface ) ;
wl_surface_commit ( window - > wl . fallback . right . surface ) ;
wl_subsurface_set_position ( window - > wl . decorations . bottom . subsurface ,
wl_subsurface_set_position ( window - > wl . fallback . bottom . subsurface ,
- GLFW_BORDER_SIZE , window - > wl . height ) ;
wp_viewport_set_destination ( window - > wl . decorations . bottom . viewport ,
wp_viewport_set_destination ( window - > wl . fallback . bottom . viewport ,
window - > wl . width + GLFW_BORDER_SIZE * 2 , GLFW_BORDER_SIZE ) ;
wl_surface_commit ( window - > wl . decorations . bottom . surface ) ;
wl_surface_commit ( window - > wl . fallback . bottom . surface ) ;
}
void _glfwUpdateContentScaleWayland ( _GLFWwindow * window )
@ -466,7 +466,7 @@ static void acquireMonitor(_GLFWwindow* window)
setIdleInhibitor ( window , GLFW_TRUE ) ;
if ( window - > wl . decorations . top . surface )
if ( window - > wl . fallback . top . surface )
destroyFallbackDecorations ( window ) ;
}
@ -522,7 +522,7 @@ static void xdgToplevelHandleConfigure(void* userData,
if ( width & & height )
{
if ( window - > wl . decorations . top . surface )
if ( window - > wl . fallback . top . surface )
{
window - > wl . pending . width = _glfw_max ( 0 , width - GLFW_BORDER_SIZE * 2 ) ;
window - > wl . pending . height =
@ -882,7 +882,7 @@ static GLFWbool createXdgShellObjects(_GLFWwindow* window)
int minwidth = window - > minwidth ;
int minheight = window - > minheight ;
if ( window - > wl . decorations . top . surface )
if ( window - > wl . fallback . top . surface )
{
minwidth + = GLFW_BORDER_SIZE * 2 ;
minheight + = GLFW_CAPTION_HEIGHT + GLFW_BORDER_SIZE ;
@ -896,7 +896,7 @@ static GLFWbool createXdgShellObjects(_GLFWwindow* window)
int maxwidth = window - > maxwidth ;
int maxheight = window - > maxheight ;
if ( window - > wl . decorations . top . surface )
if ( window - > wl . fallback . top . surface )
{
maxwidth + = GLFW_BORDER_SIZE * 2 ;
maxheight + = GLFW_CAPTION_HEIGHT + GLFW_BORDER_SIZE ;
@ -1025,7 +1025,7 @@ static void incrementCursorImage(_GLFWwindow* window)
{
_GLFWcursor * cursor ;
if ( ! window | | window - > wl . decorations . focus ! = GLFW_MAIN_WINDOW )
if ( ! window | | window - > wl . fallback . focus ! = GLFW_MAIN_WINDOW )
return ;
cursor = window - > wl . currentCursor ;
@ -1276,16 +1276,16 @@ static void pointerHandleEnter(void* userData,
_GLFWwindow * window = wl_surface_get_user_data ( surface ) ;
if ( surface = = window - > wl . decorations . top . surface )
window - > wl . decorations . focus = GLFW_TOP_DECORATION ;
else if ( surface = = window - > wl . decorations . left . surface )
window - > wl . decorations . focus = GLFW_LEFT_DECORATION ;
else if ( surface = = window - > wl . decorations . right . surface )
window - > wl . decorations . focus = GLFW_RIGHT_DECORATION ;
else if ( surface = = window - > wl . decorations . bottom . surface )
window - > wl . decorations . focus = GLFW_BOTTOM_DECORATION ;
if ( surface = = window - > wl . fallback . top . surface )
window - > wl . fallback . focus = GLFW_TOP_DECORATION ;
else if ( surface = = window - > wl . fallback . left . surface )
window - > wl . fallback . focus = GLFW_LEFT_DECORATION ;
else if ( surface = = window - > wl . fallback . right . surface )
window - > wl . fallback . focus = GLFW_RIGHT_DECORATION ;
else if ( surface = = window - > wl . fallback . bottom . surface )
window - > wl . fallback . focus = GLFW_BOTTOM_DECORATION ;
else
window - > wl . decorations . focus = GLFW_MAIN_WINDOW ;
window - > wl . fallback . focus = GLFW_MAIN_WINDOW ;
_glfw . wl . serial = serial ;
_glfw . wl . pointerEnterSerial = serial ;
@ -1340,7 +1340,7 @@ static void pointerHandleMotion(void* userData,
const char * cursorName = NULL ;
switch ( window - > wl . decorations . focus )
switch ( window - > wl . fallback . focus )
{
case GLFW_MAIN_WINDOW :
_glfw . wl . cursorPreviousName = NULL ;
@ -1431,7 +1431,7 @@ static void pointerHandleButton(void* userData,
return ;
if ( button = = BTN_LEFT )
{
switch ( window - > wl . decorations . focus )
switch ( window - > wl . fallback . focus )
{
case GLFW_MAIN_WINDOW :
break ;
@ -1473,7 +1473,7 @@ static void pointerHandleButton(void* userData,
}
else if ( button = = BTN_RIGHT )
{
if ( window - > wl . decorations . focus ! = GLFW_MAIN_WINDOW & &
if ( window - > wl . fallback . focus ! = GLFW_MAIN_WINDOW & &
window - > wl . xdg . toplevel )
{
xdg_toplevel_show_window_menu ( window - > wl . xdg . toplevel ,
@ -1485,7 +1485,7 @@ static void pointerHandleButton(void* userData,
}
// Don’t pass the button to the user if it was related to a decoration.
if ( window - > wl . decorations . focus ! = GLFW_MAIN_WINDOW )
if ( window - > wl . fallback . focus ! = GLFW_MAIN_WINDOW )
return ;
_glfw . wl . serial = serial ;
@ -2100,8 +2100,8 @@ void _glfwDestroyWindowWayland(_GLFWwindow* window)
destroyShellObjects ( window ) ;
if ( window - > wl . decorations . buffer )
wl_buffer_destroy ( window - > wl . decorations . buffer ) ;
if ( window - > wl . fallback . buffer )
wl_buffer_destroy ( window - > wl . fallback . buffer ) ;
if ( window - > wl . egl . window )
wl_egl_window_destroy ( window - > wl . egl . window ) ;
@ -2205,7 +2205,7 @@ void _glfwSetWindowSizeLimitsWayland(_GLFWwindow* window,
minwidth = minheight = 0 ;
else
{
if ( window - > wl . decorations . top . surface )
if ( window - > wl . fallback . top . surface )
{
minwidth + = GLFW_BORDER_SIZE * 2 ;
minheight + = GLFW_CAPTION_HEIGHT + GLFW_BORDER_SIZE ;
@ -2216,7 +2216,7 @@ void _glfwSetWindowSizeLimitsWayland(_GLFWwindow* window,
maxwidth = maxheight = 0 ;
else
{
if ( window - > wl . decorations . top . surface )
if ( window - > wl . fallback . top . surface )
{
maxwidth + = GLFW_BORDER_SIZE * 2 ;
maxheight + = GLFW_CAPTION_HEIGHT + GLFW_BORDER_SIZE ;
@ -2279,7 +2279,7 @@ void _glfwGetWindowFrameSizeWayland(_GLFWwindow* window,
int * left , int * top ,
int * right , int * bottom )
{
if ( window - > wl . decorations . top . surface )
if ( window - > wl . fallback . top . surface )
{
if ( top )
* top = GLFW_CAPTION_HEIGHT ;
@ -2926,7 +2926,7 @@ void _glfwSetCursorWayland(_GLFWwindow* window, _GLFWcursor* cursor)
// If we're not in the correct window just save the cursor
// the next time the pointer enters the window the cursor will change
if ( window ! = _glfw . wl . pointerFocus | |
window - > wl . decorations . focus ! = GLFW_MAIN_WINDOW )
window - > wl . fallback . focus ! = GLFW_MAIN_WINDOW )
{
return ;
}