mirror of
https://github.com/glfw/glfw.git
synced 2026-01-11 15:23:17 +01:00
Wayland: Fix duplicate monitor connection events
GLFW would report a monitor as connected each time its wl_output received an update, for example if its scale changed. This would also cause the monitor to be added to the monitor array again, causing glfwTerminate to segfault when it attempted to destroy its already destroyed wl_output.
This commit is contained in:
@@ -97,6 +97,12 @@ static void outputHandleDone(void* userData, struct wl_output* output)
|
||||
monitor->heightMM = (int) (mode->height * 25.4f / 96.f);
|
||||
}
|
||||
|
||||
for (int i = 0; i < _glfw.monitorCount; i++)
|
||||
{
|
||||
if (_glfw.monitors[i] == monitor)
|
||||
return;
|
||||
}
|
||||
|
||||
_glfwInputMonitor(monitor, GLFW_CONNECTED, _GLFW_INSERT_LAST);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user