Nach sechsmonatiger Entwicklung wurde das plattformübergreifende Toolkit zur Erstellung von Benutzeroberflächen – GTK 4.20 – veröffentlicht. GTK 4 entwickelt sich im Rahmen eines Entwicklungsprozesses weiter, der versucht, Entwicklern eine stabile und über mehrere Jahre unterstützte API bereitzustellen, die ohne Angst genutzt werden kann, dass die Anwendungen alle sechs Monate aufgrund von Änderungen in der API einer neuen GTK-Version neu gestaltet werden müssen.
Zu den bemerkenswerten Verbesserungen in GTK 4.20 gehören:
- Für die Unterstützung von Eingabemethoden wird das Wayland-Protokoll text-input verwendet. Für die Arbeit mit Komposite Servern ohne Unterstützung dieses Protokolls kann die Umgebungsvariable „GTK_IM_MODULE=simple“ manuell gesetzt werden, wodurch die Unterstützung für X11 compose-Sequenzen und Tasten für die Eingabe diakritischer Zeichen zurückgegeben wird.
- Die Unterstützung des Wayland-Protokolls wl_seat_v10 und der Verarbeitung von Server Doppelklickereignissen, die beim Halten einer Taste generiert werden, wurde hinzugefügt.
- Bei Verwendung von Wayland wurde die Unterstützung für die Verarbeitung von Beschränkungen bei den Kanten der obersten Oberfläche (xdg-toplevel edge constraint) hinzugefügt. Diese Möglichkeit ermöglicht es dem Compositing-Manager, Wayland-Clients über vorhandene Einschränkungen zu informieren, zum Beispiel, ob Fenster ihre Größe ändern können oder nicht.
- Die Unterstützung des Wayland-Protokolls „tablet-v2“ wurde hinzugefügt, um Eingaben von Grafiktabletts zu organisieren.
- Die Verarbeitung des Scrollens bei der Verwendung von Wayland wurde verbessert.
- Um ein Icon an Fenstern zu binden, wird das Wayland-Protokoll xdg-toplevel-icon verwendet.
- Alle Symbolicons und Designressourcen wurden bereinigt und vereinfacht, die jetzt von dem integrierten SVG-Parser verarbeitet werden können. Die Bereitstellung von Symbolicons und Designressourcen im PNG-Format wurde eingestellt.
- Die Möglichkeiten zur Erstellung von Designs auf Basis von CSS wurden erweitert. Unterstützung für Media Queries für Farbschemata wurde hinzugefügt. Die Funktion light-dark() wurde implementiert. Die Einstellung von Farbverläufen wurde verbessert. Der Code zur Anzeige von Schattierungen für Text wurde überarbeitet.
- Die Verarbeitung von Passwortfeldern wurde unter Berücksichtigung der Bedürfnisse von Menschen mit Behinderungen verbessert.
- Die Möglichkeit, die Anwendung gnome-papers für eine Druckvorschau aufzurufen, wurde implementiert. Die Unterstützung für das xdg-Portal zur Organisation der Druckausgabe wurde hinzugefügt.
- In den Entwicklertools wurden Komponenten zur automatischen Vervollständigung von Eingaben in Bash hinzugefügt. In das Tool gtk4-rendernode-tool wurde die Option „—offload“ integriert. Im Inspektor-Tool wurde die Ausgabe von Systeminformationen verbessert und die Visualisierung von Ereignissen optimiert. Das Tool gtk4-path-tool unterstützt jetzt die Anzeige von Schnittpunkten und bietet interaktive Funktionen. Im gtk4-demo wurden die Demos „Path Explorer“, „Sweep“ und „Image Filtering“ hinzugefügt.
- Dem Debugger wurde die Kombination Super+F zum Speichern eines Frames hinzugefügt. Ein neuer Modus GTK_DEBUG=touch-ui wurde für das Testen von Schnittstellen auf Touchscreens hinzugefügt.
- Im CSS-Editor wurden Elemente zur Änderung des Farbschemas und des Kontrasts hinzugefügt.
- In der GSK-Bibliothek (GTK Scene Kit), die Rendering-Funktionen für grafische Szenen über OpenGL und Vulkan bereitstellt, wurde die API gsk_path_foreach_intersection zur Berechnung von Schnittpunkten zwischen Pfaden hinzugefügt. Die Textdarstellung wurde verbessert. Leistungsoptimierungen, wie ein Cache für Füllmasken, wurden implementiert. Konzepte für ladbare, nicht ladbare und sub-sampled Bilder wurden vorgeschlagen.
- In der GDK-Bibliothek, die eine Schnittstelle zwischen GTK und der grafischen Subsystem bietet, wurde die Handhabung von Fenstergrößenänderungen verbessert und die Unterstützung für relative Koordinaten bei der Arbeit mit Tablets hinzugefügt.
- Auf der Android-Plattform wurde die Unterstützung für Multitouch korrekt implementiert und die erste Unterstützung für IME (Input Method Editor) hinzugefügt.
- Für die Windows-Plattform wurde eine API für die Arbeit mit Texturen über D3D12 hinzugefügt. Die Unterstützung für WGL wurde verbessert. D3D11/D3D12 und DirectComposition wurden implementiert.
- Die Unterstützung für mehrlagige Texturformate wurde hinzugefügt.
- Im Widget GtkVideo wurde die Unterstützung für YUV-Formate implementiert. Das Backend gstreamer wurde auf die Verwendung von GskPlay umgestellt. Die Unterstützung für Formate mit Subsampling wurde verbessert. Softwaredecoder für Formate mit einer Farbtiefe von 10, 12 und 16 Bit wurden hinzugefügt.
- Die Klasse GtkApplication wurde auf die Nutzung von xdg-Portalen anstelle des Session-Managers umgestellt.
- In die Klasse GtkBuilder wurde die Unterstützung für die Übersetzung von Ausdrücken mit Konstanten integriert.
- In der Klasse GtkIconTheme wurde das Streichen von symbolischen Icons erlaubt und ein Parser für SVG-Dateien hinzugefügt. Die Bibliothek librsvg ist jetzt eine der verpflichtenden Abhängigkeiten.
- Für den Betrieb ist jetzt die Unterstützung von wayland-protocols 1.44 sowie die Verfügbarkeit der Erweiterungen wl_output-v2 und xdg_output-v3 erforderlich.
- Die Backend-Architektur Broadway (Rendering im Webbrowser), die API Pixbuf, die Eigenschaft GtkApplication:register-session und die Einstellung gtk-application-prefer-dark wurden als veraltet erklärt.
Quelle: opennet.ru
