Po ośmiu miesiącach prac opublikowano wieloplatformowy zestaw narzędzi do tworzenia graficznego interfejsu użytkownika - GTK 4.8.0. GTK 4 jest opracowywane w ramach nowego procesu rozwojowego, który ma na celu zapewnienie twórcom aplikacji stabilnego i wspieranego API na kilka lat, z którego można korzystać bez obawy konieczności przepisywania aplikacji co sześć miesięcy ze względu na zmiany API w następnym GTK oddział.
Do najbardziej znaczących ulepszeń w GTK 4.8 należą:
- Zmieniono styl interfejsu wyboru koloru (GtkColorChooser).
- Interfejs wyboru czcionek (GtkFontChooser) ma ulepszoną obsługę możliwości formatu OpenType.
- Silnik CSS zoptymalizował przegrupowanie elementów powiązanych z tym samym rodzicem i pozwala na użycie wartości niecałkowitych przy określaniu wielkości odstępów między literami.
- Dane emoji zostały zaktualizowane do CLDR 40 (Unicode 14). Dodano obsługę nowych ustawień regionalnych.
- Motyw zaktualizował ikony i poprawił czytelność wyróżnionych etykiet tekstowych.
- Biblioteka GDK, która stanowi warstwę pomiędzy GTK a podsystemem graficznym, zoptymalizowała konwersję formatów pikseli. W systemach ze sterownikami NVIDIA włączone jest rozszerzenie EGL EGL_KHR_swap_buffers_with_damage.
- Biblioteka GSK (GTK Scene Kit), która umożliwia renderowanie scen graficznych poprzez OpenGL i Vulkan, obsługuje przetwarzanie dużych widocznych obszarów (rzutni). Zaproponowano biblioteki do renderowania glifów przy użyciu tekstur.
- Wayland obsługuje protokół „xdg-activation”, który umożliwia przenoszenie fokusu pomiędzy różnymi powierzchniami pierwszego poziomu (na przykład za pomocą aktywacji xdg jedna aplikacja może przełączać fokus na inną).
- Widżet GtkTextView ogranicza liczbę sytuacji prowadzących do powtarzających się przerysowań oraz implementuje funkcję GetCharacterExtents pozwalającą na określenie obszaru za pomocą glifu definiującego znak w tekście (funkcja popularna w narzędziach dla osób niepełnosprawnych).
- Klasa GtkViewport, służąca do organizowania przewijania w widżetach, ma domyślnie włączony tryb „przewiń do fokusa”, w którym treść jest automatycznie przewijana, aby zachować element, na którym znajduje się fokus wejściowy.
- Widget GtkSearchEntry wyświetlający obszar do wpisania szukanego hasła umożliwia skonfigurowanie opóźnienia pomiędzy ostatnim naciśnięciem klawisza a wysłaniem sygnału o zmianie treści (GtkSearchEntry::search-changed).
- Widżet GtkCheckButton ma teraz możliwość przypisania własnego widżetu podrzędnego za pomocą przycisku.
- Dodano właściwość „content-fit” do widżetu GtkPicture w celu dostosowania treści do zadanego rozmiaru obszaru.
- W widżecie GtkColumnView zoptymalizowano wydajność przewijania.
- Widżet GtkTreeStore umożliwia wyodrębnianie danych drzewa z plików w formacie ui.
- Do klasy GtkInscription dodano nowy widget do wyświetlania list, który odpowiada za wyświetlanie tekstu w określonym obszarze. Dodano aplikację demonstracyjną z przykładem użycia GtkInscription.
- Dodano obsługę przewijania do widżetu GtkTreePopover.
- Widget GtkLabel dodał obsługę zakładek oraz możliwość aktywacji etykiet poprzez kliknięcie na symbole skojarzone z etykietą na klawiaturze.
- Widżet GtkListView obsługuje teraz właściwości „::n-items” i „::item-type”.
- System wejściowy zapewnia obsługę obsługi parametrów parametrów przewijania wymiarów (GDK_SCROLL_UNIT_WHEEL, GDK_SCROLL_UNIT_SURFACE).
- Dla platformy macOS dodano obsługę trybu pełnoekranowego i odtwarzania wideo przy użyciu OpenGL. Ulepszone wykrywanie monitorów, praca w konfiguracjach wielomonitorowych, rozmieszczenie okien i wybór rozmiaru okna dialogowego pliku. Do renderowania używane są CALayer i IOSurface. Aplikacje można uruchamiać w tle.
- Na platformie Windows poprawiono rozmieszczenie okien na ekranach HiDPI, dodano interfejs wykrywania kolorów, zaimplementowano obsługę zdarzeń kółka myszy w wysokiej rozdzielczości oraz poprawiono obsługę touchpada.
- Do narzędzia gtk4-builder-tool dodano polecenie zrzutu ekranu umożliwiające utworzenie zrzutu ekranu, który jest używany podczas generowania zrzutów ekranu do dokumentacji.
- Zapewniona jest instalacja narzędzia gtk4-node-editor.
- Możliwości debugera zostały rozszerzone. Zaimplementowano wyświetlanie dodatkowych danych aplikacji i umożliwiono przeglądanie właściwości PangoAttrList podczas inspekcji. Dozwolone są kontrole inspektorów. Dodano obsługę trybu „GTK_DEBUG=invert-text-dir”. Zamiast zmiennej środowiskowej GTK_USE_PORTAL zaproponowano tryb „GDK_DEBUG=portale”. Poprawiona responsywność interfejsu inspekcji.
- Do zaplecza ffmpeg dodano obsługę dźwięku.
- Limit pamięci w narzędziu do pobierania obrazów JPEG został zwiększony do 300 MB.
Źródło: opennet.ru