Wayland: Fix duplicate window content scale events

The window content scale event was emitted every time the window content
area was resized, even if its scale had not changed.
This commit is contained in:
Camilla Löwy 2022-06-10 14:19:13 +02:00
parent 6857995498
commit 0b76e3a6f1
2 changed files with 3 additions and 1 deletions

View File

@ -340,6 +340,8 @@ information on what to include when reporting a bug.
- [Wayland] Bugfix: Window maximization events were not emitted - [Wayland] Bugfix: Window maximization events were not emitted
- [Wayland] Bugfix: `glfwRestoreWindow` assumed it was always in windowed mode - [Wayland] Bugfix: `glfwRestoreWindow` assumed it was always in windowed mode
- [Wayland] Bugfix: `glfwSetWindowSize` would resize a full screen window - [Wayland] Bugfix: `glfwSetWindowSize` would resize a full screen window
- [Wayland] Bugfix: A window content scale event would be emitted every time
the window resized
- [POSIX] Removed use of deprecated function `gettimeofday` - [POSIX] Removed use of deprecated function `gettimeofday`
- [POSIX] Bugfix: `CLOCK_MONOTONIC` was not correctly tested for or enabled - [POSIX] Bugfix: `CLOCK_MONOTONIC` was not correctly tested for or enabled
- [WGL] Disabled the DWM swap interval hack for Windows 8 and later (#1072) - [WGL] Disabled the DWM swap interval hack for Windows 8 and later (#1072)

View File

@ -315,7 +315,6 @@ static void resizeWindow(_GLFWwindow* window)
if (!window->wl.transparent) if (!window->wl.transparent)
setOpaqueRegion(window); setOpaqueRegion(window);
_glfwInputFramebufferSize(window, scaledWidth, scaledHeight); _glfwInputFramebufferSize(window, scaledWidth, scaledHeight);
_glfwInputWindowContentScale(window, scale, scale);
if (!window->wl.decorations.top.surface) if (!window->wl.decorations.top.surface)
return; return;
@ -362,6 +361,7 @@ static void checkScaleChange(_GLFWwindow* window)
{ {
window->wl.scale = maxScale; window->wl.scale = maxScale;
wl_surface_set_buffer_scale(window->wl.surface, maxScale); wl_surface_set_buffer_scale(window->wl.surface, maxScale);
_glfwInputWindowContentScale(window, maxScale, maxScale);
resizeWindow(window); resizeWindow(window);
} }
} }