Após oito meses de desenvolvimento, foi publicado o lançamento de um kit de ferramentas multiplataforma para criação de uma interface gráfica de usuário - GTK 4.8.0. GTK 4 está sendo desenvolvido como parte de um novo processo de desenvolvimento que tenta fornecer aos desenvolvedores de aplicativos uma API estável e suportada por vários anos que pode ser usada sem o medo de ter que reescrever aplicativos a cada seis meses devido a alterações de API no próximo GTK filial.
Entre as melhorias mais notáveis no GTK 4.8 estão:
- O estilo da interface de seleção de cores foi alterado (GtkColorChooser).
- A interface de seleção de fontes (GtkFontChooser) melhorou o suporte para recursos de formato OpenType.
- O motor CSS otimizou o reagrupamento de elementos associados ao mesmo pai, e permite a utilização de valores não inteiros na determinação do tamanho do espaçamento entre letras.
- Os dados dos emojis foram atualizados para CLDR 40 (Unicode 14). Adicionado suporte para novas localidades.
- O tema atualizou ícones e melhorou a legibilidade dos rótulos de texto destacados.
- A biblioteca GDK, que fornece uma camada entre o GTK e o subsistema gráfico, otimizou a conversão de formatos de pixel. Em sistemas com drivers NVIDIA, a extensão EGL EGL_KHR_swap_buffers_with_damage está habilitada.
- A biblioteca GSK (GTK Scene Kit), que oferece a capacidade de renderizar cenas gráficas via OpenGL e Vulkan, suporta o processamento de grandes áreas visíveis (viewports). São propostas bibliotecas para renderizar glifos usando texturas.
- Wayland suporta o protocolo “xdg-activation”, que permite transferir o foco entre diferentes superfícies de primeiro nível (por exemplo, usando xdg-activation, um aplicativo pode mudar o foco para outro).
- O widget GtkTextView reduz o número de situações que levam a redesenhos repetidos e implementa a função GetCharacterExtents para determinar a área com o glifo que define o caractere no texto (função popular em ferramentas para pessoas com deficiência).
- A classe GtkViewport, utilizada para organizar a rolagem em widgets, possui o modo “scroll-to-focus” habilitado por padrão, no qual o conteúdo é rolado automaticamente para manter o elemento que possui o foco de entrada à vista.
- O widget GtkSearchEntry, que exibe a área para inserir uma consulta de pesquisa, oferece a capacidade de configurar o atraso entre o último pressionamento de tecla e o envio de um sinal sobre a alteração do conteúdo (GtkSearchEntry::search-changed).
- O widget GtkCheckButton agora tem a capacidade de atribuir um botão ao seu próprio widget filho.
- Adicionada propriedade “content-fit” ao widget GtkPicture para adaptar o conteúdo a um determinado tamanho de área.
- O desempenho da rolagem foi otimizado no widget GtkColumnView.
- O widget GtkTreeStore permite a extração de dados de árvores de arquivos em formato ui.
- Um novo widget para exibição de listas foi adicionado à classe GtkInscription, responsável por exibir o texto em uma área específica. Adicionado um aplicativo de demonstração com um exemplo de uso do GtkInscription.
- Adicionado suporte de rolagem ao widget GtkTreePopover.
- O widget GtkLabel adicionou suporte para guias e a capacidade de ativar rótulos clicando nos símbolos associados ao rótulo no teclado.
- O widget GtkListView agora suporta as propriedades "::n-items" e "::item-type".
- O sistema de entrada fornece suporte para manipuladores de parâmetros de dimensão de rolagem (GDK_SCROLL_UNIT_WHEEL, GDK_SCROLL_UNIT_SURFACE).
- Para a plataforma macOS, foi adicionado suporte para modo de tela cheia e reprodução de vídeo usando OpenGL. Detecção de monitor aprimorada, trabalho em configurações de vários monitores, posicionamento de janela e seleção de tamanho para a caixa de diálogo de arquivo. CALayer e IOSurface são usados para renderização. Os aplicativos podem ser iniciados em segundo plano.
- Na plataforma Windows, o posicionamento das janelas nas telas HiDPI foi aprimorado, uma interface de detecção de cores foi adicionada, o suporte para eventos de roda do mouse de alta resolução foi implementado e o suporte ao touchpad foi aprimorado.
- Um comando de captura de tela foi adicionado ao utilitário gtk4-builder-tool para criar uma captura de tela, que é usada ao gerar capturas de tela para documentação.
- A instalação do utilitário gtk4-node-editor é fornecida.
- Os recursos do depurador foram expandidos. Implementada a exibição de dados adicionais do aplicativo e visualização permitida das propriedades do PangoAttrList durante a inspeção. São permitidas inspeções por inspetores. Adicionado suporte para o modo "GTK_DEBUG=invert-text-dir". Em vez da variável de ambiente GTK_USE_PORTAL, é proposto o modo “GDK_DEBUG=portals”. Melhor capacidade de resposta da interface de inspeção.
- O suporte de som foi adicionado ao backend do ffmpeg.
- O limite de memória no downloader de imagens JPEG foi aumentado para 300 MB.
Fonte: opennet.ru