Nach acht Monaten Entwicklungszeit wurde das plattformübergreifende Toolkit für die Erstellung von grafischen Benutzeroberflächen – GTK 4.8.0 – veröffentlicht. GTK 4 entwickelt sich im Rahmen eines neuen Entwicklungsprozesses, der versucht, Entwicklern eine stabile und über mehrere Jahre unterstützte API zur Verfügung zu stellen, die verwendet werden kann, ohne dass befürchtet werden muss, dass alle sechs Monate die Anwendungen aufgrund von Änderungen an der API in einer neuen GTK-Version überarbeitet werden müssen.
Zu den bemerkenswertesten Verbesserungen in GTK 4.8 gehören:
- Der Stil des Farbauswahl-Interfaces (GtkColorChooser) wurde geändert.
- Im Schriftartenwahl-Interface (GtkFontChooser) wurde die Unterstützung für OpenType-Formatfunktionen verbessert.
- Im CSS-Engine wurde die Umgruppierung von Elementen, die mit einem gemeinsamen Elternelement verbunden sind, optimiert, und die Verwendung nicht ganzzahliger Werte zur Bestimmung des Abstands zwischen Buchstaben ist jetzt erlaubt.
- Die Emoji-Daten wurden auf das CLDR 40-Set (Unicode 14) aktualisiert. Es wurde Unterstützung für neue Lokalisierungen hinzugefügt.
- Im Theme wurden die Symbole aktualisiert und die Lesbarkeit der hervorgehobenen Textmarken verbessert.
- In der GDK-Bibliothek, die eine Schicht zwischen GTK und dem Grafiksystem bereitstellt, wurde die Umwandlung von Pixel-Formaten optimiert. Auf Systemen mit NVIDIA-Treibern wird die EGL-Erweiterung EGL_KHR_swap_buffers_with_damage genutzt.
- In der GSK-Bibliothek (GTK Scene Kit), die Rendering-Möglichkeiten für grafische Szenen über OpenGL und Vulkan bietet, wurde die Unterstützung für die Verarbeitung großer sichtbarer Bereiche (Viewports) implementiert. Es wurden Bibliotheken zur Glyphenzeichnung unter Verwendung von Texturen angeboten.
- Für Wayland wurde die Unterstützung des Protokolls „xdg-activation“ realisiert, das es ermöglicht, den Fokus zwischen verschiedenen Oberflächen der ersten Ebene zu übertragen (beispielsweise kann eine Anwendung mit xdg-activation den Fokus auf eine andere Anwendung verschieben).
- Im GtkTextView-Widget wurde die Anzahl der Situationen reduziert, die zu erneuten Neuzeichnungen führen, und die Funktion GetCharacterExtents zur Ermittlung des Bereichs eines Glyphen implementiert, der ein Zeichen im Text definiert (diese Funktion ist für Barrierefreiheitstools von großer Bedeutung).
- Im GtkViewport-Klasse, die zur Organisation des Scrollens in Widgets verwendet wird, ist standardmäßig der Modus „scroll-to-focus“ aktiviert, bei dem der Inhalt automatisch so gescrollt wird, dass das fokussierte Eingabeelement immer sichtbar bleibt.
- Im GtkSearchEntry-Widget, das ein Eingabefeld für Suchanfragen anzeigt, wurde die Möglichkeit hinzugefügt, eine Verzögerung zwischen dem letzten Tastendruck und dem Senden des Signals über die Änderung des Inhalts (GtkSearchEntry::search-changed) zu konfigurieren.
- Im GtkCheckButton-Widget wurde die Möglichkeit hinzugefügt, ein eigenes untergeordnetes Widget mit einer Schaltfläche zuzuweisen.
- Im GtkPicture-Widget wurde die Eigenschaft „content-fit“ hinzugefügt, um den Inhalt an die angegebene Größe des Bereichs anzupassen.
- Im GtkColumnView-Widget wurde die Scrollleistungsoptimierung durchgeführt.
- Im GtkTreeStore-Widget ist nun das Auslesen von baumartigen Daten aus Dateien im ui-Format erlaubt.
- In der GtkInscription-Klasse, die für die Anzeige von Text in einem bestimmten Bereich verantwortlich ist, wurde ein neues Widget zur Darstellung von Listen hinzugefügt. Zudem wurde eine Demoversion mit einem Beispiel zur Verwendung der GtkInscription hinzugefügt.
- Im GtkTreePopover-Widget wurde die Unterstützung für das Scrollen hinzugefügt.
- Im GtkLabel-Widget wurde die Unterstützung für Tabulatoren hinzugefügt und die Möglichkeit geschaffen, Labels durch Drücken der mit dem Label verknüpften Tastensymbole auf der Tastatur zu aktivieren.
- Im GtkListView-Widget wurde die Unterstützung für die Eigenschaften „::n-items“ und „::item-type“ implementiert.
- Im Eingabesystem wurde Unterstützung für Dimensionierungsparameter-Handler (GDK_SCROLL_UNIT_WHEEL, GDK_SCROLL_UNIT_SURFACE) beim Scrollen bereitgestellt.
- Für die macOS-Plattform wurde die Unterstützung für den Vollbildmodus und die Wiedergabe von Videos unter Verwendung von OpenGL hinzugefügt. Die Erkennung von Monitoren, der Betrieb in Mehrmonitor-Konfigurationen, das Anordnen von Fenstern und die Auswahl der Größe für Datei-Dialoge wurden verbessert. Für das Rendering werden CALayer und IOSurface verwendet. Die Ausführung von Anwendungen im Hintergrund wird unterstützt.
- Auf der Windows-Plattform wurde die Fensteranordnung auf HiDPI-Bildschirmen verbessert, eine Farbdefinition-Schnittstelle wurde hinzugefügt, die Unterstützung für hochauflösende Maus-Radereignisse wurde implementiert und die Unterstützung für Touchpads wurde verbessert.
- Das Tool gtk4-builder-tool erhielt den Befehl screenshot zur Erstellung von Screenshots, der bei der Generierung von Screenshots für die Dokumentation verwendet wird.
- Die Installation des Tools gtk4-node-editor wurde sichergestellt.
- Die Debugging-Funktionen wurden erweitert. Zusätzliche Anwendungsdaten werden angezeigt, und die Anzeige der Eigenschaften von PangoAttrList beim Inspektionsprozess ist nun erlaubt. Das Inspektieren von Inspektoren ist gestattet. Unterstützung für den Modus „GTK_DEBUG=invert-text-dir“ wurde hinzugefügt. Anstelle der Umgebungsvariable GTK_USE_PORTAL wurde der Modus „GDK_DEBUG=portals“ vorgeschlagen. Die Reaktionsfähigkeit der Inspektionsoberfläche wurde verbessert.
- Im Backend von ffmpeg wurde die Unterstützung für Audio hinzugefügt.
- Das Speicherkontingent im JPEG-Bilderloader wurde auf 300 MB erhöht.
Quelle: opennet.ru
