Nach acht Monaten Entwicklung wurde die Multiplattform-Version des Toolkits zur Erstellung von Benutzeroberflächen – GTK 4.8.0 – veröffentlicht. GTK 4 entwickelt sich im Rahmen eines neuen Entwicklungsprozesses, der versucht, Entwicklern stabilen und über mehrere Jahre unterstützten API zu bieten, welches verwendet werden kann, ohne befürchten zu müssen, dass alle sechs Monate die Anwendungen wegen API-Änderungen in einem neuen GTK-Zweig neu erstellt 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-Formatmerkmale verbessert.
- Im CSS-Engine wurde die Umgruppierung von Elementen optimiert, die zu einem Elternteil gehören, und die Verwendung von nicht ganzzahligen Werten zur Festlegung der Buchstabenabstände ist nun erlaubt.
- Die Emoji-Daten wurden auf das CLDR 40-Set (Unicode 14) aktualisiert. Neue Locales werden unterstützt.
- In den Design-Themen wurden die Icons aktualisiert und die Lesbarkeit der hervorgehobenen Textbeschriftungen verbessert.
- In der GDK-Bibliothek, die eine Schnittstelle 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 Möglichkeiten zur Darstellung von Grafikszenen über OpenGL und Vulkan bereitstellt, wurde die Unterstützung für die Verarbeitung großer sichtbarer Bereiche (Viewports) implementiert. Bibliotheken zum Rendern von Glyphen unter Verwendung von Texturen wurden vorgeschlagen.
- Für Wayland wurde die Unterstützung des Protokolls 'xdg-activation' implementiert, das es ermöglicht, den Fokus zwischen unterschiedlichen Hauptoberflächen zu übertragen (zum Beispiel kann eine Anwendung mit xdg-activation den Fokus auf eine andere Anwendung umschalten).
- Im Widget GtkTextView wurde die Anzahl der Situationen verringert, die zu wiederholten Neuzeichnungen führen, und die Funktion GetCharacterExtents zur Bestimmung des Bereichs mit einem Glyphen, das ein Zeichen im Text definiert, wurde implementiert (diese Funktion wird von Hilfsmitteln für Menschen mit Behinderungen nachgefragt).
- In der Klasse GtkViewport, die zur Organisation des Scrollens in Widgets verwendet wird, wurde standardmäßig der Modus 'scroll-to-focus' aktiviert, bei dem der Inhalt automatisch so gescrollt wird, dass das fokussierte Eingabeelement sichtbar bleibt.
- Im GtkSearchEntry-Widget, das ein Eingabefeld für Suchanfragen anzeigt, wurde die Möglichkeit hinzugefügt, die Verzögerung zwischen dem letzten Tastendruck und dem Senden des Signals über die Inhaltsänderung (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 Bereichsgröße anzupassen.
- Im GtkColumnView-Widget wurde die Leistung beim Scrollen optimiert.
- Im GtkTreeStore-Widget wurde das Extrahieren baumartiger Daten aus Dateien im ui-Format erlaubt.
- Im GtkInscription-Klasse, die für die Anzeige von Text in einem bestimmten Bereich verantwortlich ist, wurde ein neues Widget zur Anzeige von Listen hinzugefügt. Eine Demo-Anwendung mit einem Beispiel für die Verwendung von GtkInscription wurde hinzugefügt.
- Im GtkTreePopover-Widget wurde die Unterstützung für Scrollen hinzugefügt.
- Im GtkLabel-Widget wurde die Unterstützung für Tabulatoren hinzugefügt und die Möglichkeit zur Aktivierung von Labels durch Drücken der an das Label gebundenen Tastensymbole auf der Tastatur bereitgestellt.
- Im GtkListView-Widget wurde die Unterstützung für die Eigenschaften „::n-items“ und „::item-type“ implementiert.
- Im Eingabesystem wurde die Unterstützung für Parameterbehandler für Scrolldimensionen (GDK_SCROLL_UNIT_WHEEL, GDK_SCROLL_UNIT_SURFACE) hinzugefügt.
- Für die macOS-Plattform wurde die Unterstützung für den Vollbildmodus und die Video-Wiedergabe unter Verwendung von OpenGL hinzugefügt. Die Erkennung von Monitoren, das Arbeiten in Mehrmonitor-Konfigurationen, die Fensterplatzierung und die Auswahl der Größe für den Datei-Dialog wurden verbessert. CALayer und IOSurface wurden für das Rendering verwendet. Der Betrieb von Anwendungen im Hintergrund wurde sichergestellt.
- Auf der Windows-Plattform wurde die Fensterplatzierung auf HiDPI-Bildschirmen verbessert, eine Farbdefinition-UI hinzugefügt, die Unterstützung für Hochauflösungs-Mausradereignisse implementiert und die Unterstützung für Touchpads verbessert.
- Im Werkzeug gtk4-builder-tool wurde der Befehl screenshot hinzugefügt, um einen Screenshot zu erstellen, der beim Generieren von Screenshots für die Dokumentation verwendet wird.
- Die Installation des Werkzeugs gtk4-node-editor wurde sichergestellt.
- Die Funktionen des Debuggers wurden erweitert. Es wurde die Anzeige zusätzlicher Anwendungsdaten implementiert und das Anzeigen von Eigenschaften der PangoAttrList beim Inspektieren erlaubt. Das Inspektieren von Inspektoren ist jetzt zulässig. 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 Inspektor-Schnittstelle wurde erhöht.
- Im Backend von ffmpeg wurde die Unterstützung für Audio hinzugefügt.
- Das Speicherkontingent im JPEG-Bilder-Uploader wurde auf 300 MB erhöht.
Quelle: opennet.ru
