GTK+ 4 checklist

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

todo, emeus exists

Keyboard handling with event controllers

Christian Hergert, Carlos

blog

in progress

Split size and position to size allocation

Benjamin, Timm

todo

Add transformations to size allocation

todo

Add overlay blur

Matthias

overlay blur

done

Add fancy stack transition

branch, needs shader support

in progress

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

todo

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

in progress

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

key events left

Replace GtkDragSource by a gesture

Benjamin

todo

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

in progress

Reimplement popovers using subsurfaces

remove special-casing, treat them as toplevels

todo

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

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

todo

Drop last child windows

some uses in GtkTreeView

todo

Get rid of GtkInvisible

still used with grabs

todo

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

todo

Implement repeat nodes in vulkan

Matthias

done

Implement shadow nodes in vulkan

todo

Make render nodes have parent-relative positions

This is needed for caching render nodes

todo

Cache small textures in an atlas like glyphs

benchmark first

todo

Share the glyph cache for all toplevels

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

todo

Share textures for all toplevels

follows from the previous one

todo

GDK

Clean support for subsurfaces in GDK

Benjamin, Matthias

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

todo

Implement subsurfaces for X

Benjamin, Matthias

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

todo

Implement subsurfaces for win32

todo

Clean up app vs device pixels

todo

Add monitor change signals

Basically, enter/leave for windows wrt to monitors

in progress

No more root window

Benjamin, Matthias

api is gone, internal cleanup still needed

in progress

Get rid of root coordinates

still used for dnd in some places

todo

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

todo

Redo DND api with content providers

Benjamin

todo

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

todo

Get rid of foreign windows

branch

in progress

Get rid of gdk_drag_context_get_source/dest_window

at least, make them not return foreign windows

todo

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

todo

Projects/GTK+/Roadmap/GTK4 (last edited 2018-02-18 23:04:08 by MatthiasClasen)