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


