GTK 4 checklist

/!\ This wiki page is outdated and kept only for archival reasons. The list has now been migrated to a gitlab milestone: https://gitlab.gnome.org/GNOME/gtk/-/milestones/1 /!\

The initial list was produced at the GTK+ BOF at Guadec 2017 in Manchester. It has been reviewed at the GTK+ hackfest in February 2018.

Task

People

More info

Status

GTK

Constraint-based layout

Emmanuele

blog blog

done

Keyboard handling with event controllers

Christian Hergert, Carlos

blog

done

Split size and position to size allocation

Benjamin, Timm

done

Add transformations to size allocation

done

Add overlay blur

Matthias

overlay blur

done

Add fancy stack transition

branch, needs shader support

Flexible focus handling

Add a visible-focus state flags, :focus(visible) pseudo class, and render outline always, branch needs alignment with new css things: https://drafts.csswg.org/selectors-4/#the-focusring-pseudo http://www.scottohara.me/blog/2017/05/14/focus-within.html

done

Make GtkLabel use gsk

Matthias

done

Make GtkEntry use gsk

Matthias

done

Make GtkGLArea use a texture

Matthias

branch

done

Cache render nodes

Benjamin

Cache render nodes per widget, make queue-draw just delete the cached node. Partial redraws can them be implemented by diffing the previous and current render trees and finding changed parts

done

Make GtkIconTheme return textures

Matthias

Currently, we have a cache of pixbufs, but we duplicate textures

done

Fix symbolic svg rendering with shaders

Matthias

Need to load them like gtk-encode-symbolic-svg

done

Clean up immodules

Matthias

Drop all the random ones, and keep the platform ones, but built-in, and turn the modules into an io extension point

done

Clean up printbackends

Matthias

Drop papi test, turn into an io extension point

done

Replace GdkPixbuf by GdkTexture internally

Matthias

mostly done

Replace GdkPixbuf by GdkTexture in API

Matthias

mostly done

Clean up legacy event signals and handlers

Carlos, Matthias

done

Replace GtkDragSource by a gesture

Benjamin

done

Drop GtkPlacesSidebar from api

Matthias

only used by nautilus outside of gtk

done

Drop GtkToolPalette

Benjamin

only used by glade

done

Replace child properties with real properties

Emmanuele

done

Reimplement popovers using popup surfaces

remove special-casing, treat them as toplevels

done

Add a GtkToplevel that does toplevel stuff for GtkWindow, GtkTooltip, GtkMenu, GtkPopover

Benjamin

handle things that are relevant to both window and popover: renderer, modality, focus, event delivery

done

Drop last child windows

some uses in GtkTreeView

done

Get rid of GtkInvisible

still used with grabs

done

Add paintables

Benjamin

done

Add media support

Benjamin

based on paintables

done

GSK

Add GskTextNode

Matthias

done

Add GskBlurNode

Matthias

branch

done

Make GskTextNode use texture atlas

Matthias

done

Make GskBlurNode use a shader

Matthias

branch

done

Support nodes as texture

Matthias, Benjamin

This requires using multiple renderpasses and ordering them correctly

done

Finish the GL renderer

Timm

blog branch

done

Implement blurred shadows in glsl

Timm

done

Implement repeat nodes in vulkan

Matthias

done

Implement shadow nodes in vulkan

todo

Cache small textures in an atlas like glyphs

benchmark first

done

Share the glyph cache for all toplevels

plan: have a 'master' context in the display and use that to shared textures

done

Share textures for all toplevels

follows from the previous one

done

GDK

Clean support for popups in GDK

Benjamin, Matthias

maintain a tree of child surfaces, treat them as toplevels wrt to input and output

done

Implement popups for X

Benjamin, Matthias

Implement popups for X as 'connected toplevels' where gdk moves the window

done

Implement popups for win32

todo

Add monitor change signals

Basically, enter/leave for windows wrt to monitors

done

No more root window

Benjamin, Matthias

api is gone, internal cleanup still needed

done

Get rid of root coordinates

still used for dnd in some places

done

Event cleanup

Carlos

branch

done

Get rid of unmanaged DND

branch

done

Convert win32 to managed DND

LRN

786509

done

Convert quartz to managed DND

done

Redo DND api with content providers

Benjamin

done

Move selection and clipboard handling to GDK

async apis instead of events branch

done

Remove gdkproperty.h

all apis in there are X-specific and only used by GtkSelection

done

Get rid of GdkDeviceManager

Matthias

done

Get rid of gdk_window_move

done

Get rid of foreign windows

branch

done

Get rid of gdk_drag_context_get_source/dest_window

at least, make them not return foreign windows

done

Get rid of gdk_selection_owner_get

done

Drop GdkScreen

API is gone, some backend cleanup left

done

Drop GdkVisual

done

Consider dropping the mir backend

Asked the mir team if it is still needed

done

Rewrite broadway backend for gsk

done

Remove gdkthreads.h

EmmanueleBassi

branch

done

Remove gdkscreen.h

done

Drop gdk_window_add_filter

Matthias

replace with ::xevent and similar signal for win32 backend

done

Dropped from 4.0

States and transitions in ui files

Christian Hergert

blog

todo, prototyped in libdazzle

Designer support

blog

todo

Make GtkTextView use gsk

Matthias

done

Clean up app vs device pixels

todo

Projects/GTK/Roadmap/GTK4 (last edited 2020-07-23 12:09:24 by MatthiasClasen)