Revert 946867b as it breaks window sizing on some compositors

Fixes #10268
This commit is contained in:
Kovid Goyal
2026-07-20 19:58:00 +05:30
parent ccc2bba92a
commit 0a751263c1
2 changed files with 6 additions and 14 deletions

View File

@@ -179,6 +179,11 @@ consumption to do the same tasks.
Detailed list of changes
-------------------------------------
0.48.1 [future]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Wayland: fix a regression in the previous release that broke window sizing on Hyprland with fractional scales and an initial specified size (:iss:`10268`)
0.48.0 [2026-07-18]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -1888,21 +1888,8 @@ create_os_window(PyObject UNUSED *self, PyObject *args, PyObject *kw) {
// this can happen if the window is moved by the OS to a different monitor when shown or with fractional scales on Wayland
// it can also happen with layer shell windows if the callback is
// called before the window is fully created
xdpi = n_xdpi; ydpi = n_ydpi; xscale = n_xscale; yscale = n_yscale;
xdpi = n_xdpi; ydpi = n_ydpi;
fonts_data = load_fonts_data(OPT(font_size), xdpi, ydpi);
// Re-compute the window size with the updated scale/font metrics. This matters when
// the initial size is specified in cells: the first window on Wayland is created with
// scale=1 because fractional scale is only sent by the compositor after the surface
// exists, so the cell dimensions used for the initial size calculation were wrong.
PyObject *new_size = PyObject_CallFunction(get_window_size, "IIddff", fonts_data->fcm.cell_width, fonts_data->fcm.cell_height, fonts_data->logical_dpi_x, fonts_data->logical_dpi_y, xscale, yscale);
if (new_size != NULL) {
int new_width = PyLong_AsLong(PyTuple_GET_ITEM(new_size, 0)), new_height = PyLong_AsLong(PyTuple_GET_ITEM(new_size, 1));
Py_DECREF(new_size);
if (!PyErr_Occurred() && (new_width != width || new_height != height)) {
glfwSetWindowSize(glfw_window, new_width, new_height);
width = new_width; height = new_height;
} else PyErr_Clear();
} else PyErr_Clear();
}
}
if (is_first_window) {