|
|
@ -338,8 +338,14 @@ static void resizeFramebuffer(_GLFWwindow* window) |
|
|
|
_glfwInputFramebufferSize(window, window->wl.fbWidth, window->wl.fbHeight); |
|
|
|
_glfwInputFramebufferSize(window, window->wl.fbWidth, window->wl.fbHeight); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void resizeWindow(_GLFWwindow* window) |
|
|
|
static GLFWbool resizeWindow(_GLFWwindow* window, int width, int height) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
if (width == window->wl.width && height == window->wl.height) |
|
|
|
|
|
|
|
return GLFW_FALSE; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
window->wl.width = width; |
|
|
|
|
|
|
|
window->wl.height = height; |
|
|
|
|
|
|
|
|
|
|
|
resizeFramebuffer(window); |
|
|
|
resizeFramebuffer(window); |
|
|
|
|
|
|
|
|
|
|
|
if (window->wl.scalingViewport) |
|
|
|
if (window->wl.scalingViewport) |
|
|
@ -375,6 +381,8 @@ static void resizeWindow(_GLFWwindow* window) |
|
|
|
GLFW_BORDER_SIZE); |
|
|
|
GLFW_BORDER_SIZE); |
|
|
|
wl_surface_commit(window->wl.fallback.bottom.surface); |
|
|
|
wl_surface_commit(window->wl.fallback.bottom.surface); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return GLFW_TRUE; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void _glfwUpdateBufferScaleFromOutputsWayland(_GLFWwindow* window) |
|
|
|
void _glfwUpdateBufferScaleFromOutputsWayland(_GLFWwindow* window) |
|
|
@ -651,13 +659,9 @@ static void xdgSurfaceHandleConfigure(void* userData, |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (width != window->wl.width || height != window->wl.height) |
|
|
|
if (resizeWindow(window, width, height)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
window->wl.width = width; |
|
|
|
_glfwInputWindowSize(window, window->wl.width, window->wl.height); |
|
|
|
window->wl.height = height; |
|
|
|
|
|
|
|
resizeWindow(window); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_glfwInputWindowSize(window, width, height); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (window->wl.visible) |
|
|
|
if (window->wl.visible) |
|
|
|
_glfwInputWindowDamage(window); |
|
|
|
_glfwInputWindowDamage(window); |
|
|
@ -752,13 +756,9 @@ void libdecorFrameHandleConfigure(struct libdecor_frame* frame, |
|
|
|
damaged = GLFW_TRUE; |
|
|
|
damaged = GLFW_TRUE; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (width != window->wl.width || height != window->wl.height) |
|
|
|
if (resizeWindow(window, width, height)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
window->wl.width = width; |
|
|
|
_glfwInputWindowSize(window, window->wl.width, window->wl.height); |
|
|
|
window->wl.height = height; |
|
|
|
|
|
|
|
resizeWindow(window); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_glfwInputWindowSize(window, width, height); |
|
|
|
|
|
|
|
damaged = GLFW_TRUE; |
|
|
|
damaged = GLFW_TRUE; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -2250,13 +2250,13 @@ void _glfwSetWindowSizeWayland(_GLFWwindow* window, int width, int height) |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
{ |
|
|
|
window->wl.width = width; |
|
|
|
if (!resizeWindow(window, width, height)) |
|
|
|
window->wl.height = height; |
|
|
|
return; |
|
|
|
resizeWindow(window); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (window->wl.libdecor.frame) |
|
|
|
if (window->wl.libdecor.frame) |
|
|
|
{ |
|
|
|
{ |
|
|
|
struct libdecor_state* frameState = libdecor_state_new(width, height); |
|
|
|
struct libdecor_state* frameState = |
|
|
|
|
|
|
|
libdecor_state_new(window->wl.width, window->wl.height); |
|
|
|
libdecor_frame_commit(window->wl.libdecor.frame, frameState, NULL); |
|
|
|
libdecor_frame_commit(window->wl.libdecor.frame, frameState, NULL); |
|
|
|
libdecor_state_free(frameState); |
|
|
|
libdecor_state_free(frameState); |
|
|
|
} |
|
|
|
} |
|
|
@ -2330,20 +2330,17 @@ void _glfwSetWindowAspectRatioWayland(_GLFWwindow* window, int numer, int denom) |
|
|
|
width *= targetRatio; |
|
|
|
width *= targetRatio; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (width != window->wl.width || height != window->wl.height) |
|
|
|
if (resizeWindow(window, width, height)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
window->wl.width = width; |
|
|
|
|
|
|
|
window->wl.height = height; |
|
|
|
|
|
|
|
resizeWindow(window); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (window->wl.libdecor.frame) |
|
|
|
if (window->wl.libdecor.frame) |
|
|
|
{ |
|
|
|
{ |
|
|
|
struct libdecor_state* frameState = libdecor_state_new(width, height); |
|
|
|
struct libdecor_state* frameState = |
|
|
|
|
|
|
|
libdecor_state_new(window->wl.width, window->wl.height); |
|
|
|
libdecor_frame_commit(window->wl.libdecor.frame, frameState, NULL); |
|
|
|
libdecor_frame_commit(window->wl.libdecor.frame, frameState, NULL); |
|
|
|
libdecor_state_free(frameState); |
|
|
|
libdecor_state_free(frameState); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_glfwInputWindowSize(window, width, height); |
|
|
|
_glfwInputWindowSize(window, window->wl.width, window->wl.height); |
|
|
|
|
|
|
|
|
|
|
|
if (window->wl.visible) |
|
|
|
if (window->wl.visible) |
|
|
|
_glfwInputWindowDamage(window); |
|
|
|
_glfwInputWindowDamage(window); |
|
|
|