Die Firma Canonical hat Mir 2.26.0 veröffentlicht – eine neue Version des Kompositors und einer Bibliothek für den Aufbau von Shells und grafischen Umgebungen auf Basis von Wayland.
Wayland und neue Protokolle
- Eine MVP-Implementierung des Protokolls wurde hinzugefügt. ext-input-triggers (V1).
- Ein Protokoll-Entwurf wurde realisiert. ext-input-triggers zur Verarbeitung von Eingabetriggers in Wayland. Diese Funktionalität gilt als privilegiert und ist standardmäßig nicht aktiviert.
- Die Spezifikationsdatei wurde aktualisiert. ext-input-trigger-action-v1.xml: es wurden Ergänzungen zur Gültigkeit und Verfügbarkeit von Tokens hinzugefügt.
- Hinzugefügt Teilimplementierung von ext_image_copy_capture_v1 für Cursor-Sitzungen.
- Implementiert Übertragung des Cursorbildes über ext_image_copy_capture_v1.
Rust und die Entwicklung der Architektur
- Die Implementierung von Wayland-Frontend in Rust hat begonnen..
- Die Arbeit an der Eingangsplattform auf Basis von Rust wurde fortgesetzt. Dies ist zwar noch nicht der Hauptweg zur Verarbeitung von Eingaben, aber bereits ein praktischer Schritt zur schrittweisen Integration von Rust in das Projekt.
Eingabesystem: evdev-rs
- Die Unterstützung für Touch-Events wurde implementiert.
- Der Code des Gerätemoduls wurde bereinigt.
- Die Verarbeitung von Zeigegeräteevents wurde korrigiert: der Zustand der Tasten wurde in den Speicher auf Geräteebene übertragen.
- Die Logik zur Verarbeitung von Ereignissen wurde überarbeitet, um die Klarheit und Wartbarkeit des Codes zu erhöhen.
Cursor, Fenster, API und interne Infrastruktur
- Für CursorObservers eine Möglichkeit hinzugefügt, um Änderungen des Cursorbildes zu verfolgen.
- Komponente CursorObserverMultiplexer sendet nun den aktuellen Zustand an neue registrierte Beobachter.
- Eine Refaktorisierung wurde durchgeführt. MinimalWindowManager.
- Eine Funktion wurde hinzugefügt ermöglicht es, den Alpha-Kanal des Fensters festzulegen und über WindowInfo abzurufen..
- In die libmiral-Vorlagen wurden requires-Klauselnhinzugefügt, was die Strenge der Einschränkungen auf Template-Code-Ebene in C++ verbessert.
- Der Transfer von Logging-APIs und Standardwerten in mircore wurde abgeschlossen..
- Der Aufruf von strerror() wurde ersetzt durch den thread-sicheren strerror_r().
Fehlerbehebungen
- Ein Fehler wurde behoben, bei dem BasicXCBConnection::destroy_window xcb_map_window anstelle von xcb_destroy_window aufrief..
- Ein Problem wurde beseitigt, bei dem XCB-Antworten nicht immer freigegeben wurden..
- Ein Fehler wurde behoben: Vollbildvideo-Wiedergabe in Google Chrome funktionierte möglicherweise nicht, wenn das Fenster nicht zuvor im Vollbildmodus war.
- Für X11 wurde die korrekte Einstellung hinzugefügt _NET_CLIENT_LIST_STACKING.
- Die unsichere Implementierung wurde behoben fatal signal handling, die in der Veröffentlichung direkt als „wildly unsafe“ bezeichnet wurde.
- Ein Fehler wurde behoben, bei dem die Überprüfung DRM_CLIENT_CAP_ATOMIC durch einen falschen ioctl-Aufruf durchgeführt wurde.
- Die Logik wurde bereinigt und verbessert. mgk::find_crtc_with_primary_plane.
- Das Verhalten der Verdeckung (Occlusion) wurde korrigiert: Wenn die Oberfläche einen undurchsichtigen Bereich hat, ihre Alpha jedoch nicht 1.0 entspricht, sollte sie nicht mehr als vollständig überdeckend verwendet werden.
Sonstiges
- Die Anzahl neuer Teilnehmer am Projekt ist gestiegen: Die Veröffentlichung von Mir 2.26.0 enthält Beiträge mehrerer Neulinge, was die Entwickler als Zeichen des Wachstums der Gemeinschaft um Mir interpretieren.
Quelle: linux.org.ru
