Домой Софт macOS и Linux Вышел Mir 2.26.0: поддержка Rust и новые протоколы Wayland

Вышел Mir 2.26.0: поддержка Rust и новые протоколы Wayland

Canonical обновляет композитор Mir, добавляя поддержку Rust, новые протоколы для Wayland и исправляя ошибки в работе с окнами.

Вышел Mir 2.26.0: поддержка Rust и новые протоколы Wayland
Вышел Mir 2.26.0: поддержка Rust и новые протоколы Wayland — иллюстрация к материалу. Источник: linux.org.ru

Компания 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