Mir 2.26.0

Компания 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добавленыrequiresclauses, что улучшает строгость ограничений на уровне шаблонного кода 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.
>>> Источник
