Компания 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 можеше да не работи, ако прозорецът предварително не е бил в режим на пълноекран.
  • За 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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster