Компания Canonical представила релиз Mir 2.26.0 — новой версии композитора и набора библиотек для построения оболочек и графических сред на базе Wayland.
Wayland и новые протоколы
- Добавлена MVP-реализация протокола ext-input-triggers (V1).
- Реализован черновик протокола ext-input-triggers для обработки триггеров ввода в Wayland. Эта функциональность считается привилегированной и не включается по умолчанию.
- Обновлён файл спецификации ext-input-trigger-action-v1.xml: в него добавлены уточнения о валидности и доступности токенов.
- Добавлена частичная реализация ext_image_copy_capture_v1 для cursor sessions.
- Реализована передача изображения курсора через ext_image_copy_capture_v1.
Rust и развитие архитектуры
- Начата реализация Wayland frontend на Rust.
- Продолжена работа над платформой ввода на основе Rust. Это ещё не основной путь обработки ввода, но уже практический шаг к постепенной интеграции Rust в проект.
Подсистема ввода: evdev-rs
- Реализована поддержка событий касания (touch events).
- Почищен код модуля device.
- Исправлена обработка событий указательных устройств : состояние кнопок перенесено в хранилище на уровне отдельных устройств.
- Логика обработки событий переработана для повышения ясности и сопровождаемости кода.
Курсор, окна, API и внутренняя инфраструктура
- Для CursorObservers добавлена возможность отслеживать изменения изображения курсора.
- Компонент CursorObserverMultiplexer теперь отправляет начальное состояние новым зарегистрированным наблюдателям.
- Проведён рефакторинг MinimalWindowManager.
- Добавлена возможность задавать alpha-канал окна и получать его через WindowInfo.
- В шаблоны libmiral добавлены requires clauses, что улучшает строгость ограничений на уровне шаблонного кода C++.
- Выполнен перенос logging APIs и значений по умолчанию в mircore.
- Вызов strerror() заменён на потокобезопасный strerror_r().
Исправления ошибок
- Исправлена ошибка, при которой BasicXCBConnection::destroy_window вызывал xcb_map_window вместо xcb_destroy_window.
- Устранена проблема, из-за которой ответы XCB не всегда освобождались.
- Исправлена ошибка: полноэкранное воспроизведение видео в Google Chrome могло не работать, если окно заранее не находилось в fullscreen-режиме.
- Для X11 добавлена корректная установка _NET_CLIENT_LIST_STACKING.
- Исправлена небезопасная реализация fatal signal handling, которую в релизе прямо назвали «wildly unsafe».
- Исправлена ошибка, при которой проверка DRM_CLIENT_CAP_ATOMIC выполнялась через неверный ioctl-вызов.
- Проведена очистка и улучшение логики mgk::find_crtc_with_primary_plane.
- Исправлено поведение затенения (occlusion): если поверхность имеет непрозрачную область, но её alpha не равна 1.0, она больше не должна использоваться как полностью перекрывающая.
Прочее
- Отмечено увеличение числа новых участников проекта: релиз Mir 2.26.0 содержит вклад сразу нескольких новичков, что разработчики трактуют как признак роста сообщества вокруг Mir.
Источник: linux.org.ru
